Тонкая настройка vim (делимся полезностями в .vimrc. Вопросы задавайте в отдельных темах!)

и другие vi-подобные редакторы

Модератор: /dev/random

Аватара пользователя
pento
Сообщения: 403
ОС: Fedora 10

Re: Тонкая настройка vim

Сообщение pento »

(bear-cub @ Jul 21 2006, в 15:35) писал(а):Для того чтоб переползти из секции в секцию приходится выходить из режима вставки,
или курсором бегать...

или поставить закладки (marks) ;)
Спасибо сказали:
ZED
Сообщения: 44
ОС: linux

Re: Тонкая настройка vim

Сообщение ZED »

Вопрос. Уже обсуждался наверняка, но все таки. Установлен 7-й vim. Ну ни как не могу включить подсветку синтаксиса. Перепроверил кажется все что можно было, везде установлено syntax=on, все равно не врубается. Может я не там искал или версия у меня кривая, вобщем в ступоре я. Если у кого была похожая проблема прошу откликнуться!
Спасибо сказали:
Аватара пользователя
BlackStar
Сообщения: 1338
Статус: We are all Kosh
ОС: Fedora 10

Re: Тонкая настройка vim

Сообщение BlackStar »

Попробуй добавить следующие строки в ~/.vimrc :

Код: Выделить всё

filetype on
filetype plugin on
LightLang Team
Спасибо сказали:
ZED
Сообщения: 44
ОС: linux

Re: Тонкая настройка vim

Сообщение ZED »

Спасибо за ответ, BlackStar, но не помогло. :huh: Есть ещё варианты?
Спасибо сказали:
jsv
Сообщения: 67

Re: Тонкая настройка vim

Сообщение jsv »

Yuri писал(а):
25.07.2006 09:21
Спасибо за ответ, BlackStar, но не помогло. :huh: Есть ещё варианты?

Информации мало. Надо подиагностировать.
Открыть какой-нибудь файл, где должна быть подсветка, сказать руками :syntax enable или :syntax on.
Посмотреть, не ругается ли на что... Если не ругается, поразмыслить над выводом команд

Код: Выделить всё

:verbose set ft?
:syntax
:scriptnames

Если ничего не поможет, почитать :help syntax...
Если и это не поможет, погонять :debug view %...
Ну и так далее :)
Спасибо сказали:
ZED
Сообщения: 44
ОС: linux

Re: Тонкая настройка vim

Сообщение ZED »

К сожаления и это не продвинуло к счастливому разноцветию vim :o . На команды не реагирует и даже не ругается, вот. Я в полной панике. Такой вопрос - а у остальных подсветка изначально была включена? или это заморочки FEDORA5?
Спасибо сказали:
Аватара пользователя
Dark_Savant
Бывший модератор
Сообщения: 1100
Статус: киборг
ОС: Cyborg OS 0.0.1.3

Re: Тонкая настройка vim

Сообщение Dark_Savant »

Yuri: а это точно vim ? не vi часом ?
I'm a tragic hero
In this game called life
My chances go to zero
But I always will survive
Спасибо сказали:
ZED
Сообщения: 44
ОС: linux

Re: Тонкая настройка vim

Сообщение ZED »

Dark_Savant писал(а):
25.07.2006 14:40
Yuri: а это точно vim ? не vi часом ?


Опа, приехали...
А все может быть, не знал таких тонкостей....

Ну е-моё... точно. Приношу всем свои извинения за вопрос не в тему. Впредь постараюсь быть внимательнее :)
Спасибо сказали:
bear-cub
Сообщения: 20

Re: Тонкая настройка vim

Сообщение bear-cub »

pento писал(а):
21.07.2006 13:14
(bear-cub @ Jul 21 2006, в 15:35) писал(а):
Для того чтоб переползти из секции в секцию приходится выходить из режима вставки,
или курсором бегать...

или поставить закладки (marks) ;)

т.е. вы предлагаете сначала пробежатся по файлу поставить закладки, а потом начинать редактировать?
А как в режиме вставки бегать по закладкам?

Дело в том, что есть файл, что то вроде заметок к проекту, у которого есть некоторые поля для заполнения. Файл текстовый, и эти поля выглядят просто как строка вида "=== строка ===", после которой надо вставить текст. И таких секций несколько.
Можно как то в режиме вставки быстро перескакивать на несколько строк вниз?

Ну например, вот файл
=== строка ===
=== строка ===
=== строка ===

мне надо сделать
=== строка ===
Здесь я добавил свой коментарий

=== строка ===
И здесь два раза
И еще

=== строка ===
Ну и здесь отметился

Можно сразу заполнить все секции, не выскакивая из режима вставки,
и не используя курсорные клавиши

Спасибо.
Спасибо сказали:
jsv
Сообщения: 67

Re: Тонкая настройка vim

Сообщение jsv »

Ну например, вот файл
=== строка ===
=== строка ===
=== строка ===

мне надо сделать
=== строка ===
Здесь я добавил свой коментарий

=== строка ===
И здесь два раза
И еще

=== строка ===
Ну и здесь отметился

Ну, например, вставив текст в первой секции:
^O/^===/+1CR
Вставив текст второй:
^On
и так далее... или ^O2j в обоих случаях, если они и впрямь подряд идут (вариант со стрелкой "курсор вниз" отбрасываем, как неспортивный :) )... затем, если, как в вашем посте, каждая секция представляет собой параграф, по ним можно перемещаться через ^O{ и ^O}

Это, если действительно не хочется покидать режим вставки... Лично я привык вставлять текст небольшими фрагментами, всё время возвращаясь в нормальный режим. Это уже почти рефлекс: закончил мысль (ну или что-то, её заменяющее) -- нажми esc (который у меня на caps lock смапирован).

А вообще, если надо часто работать с файлами такой структуры, я бы для них filetype определил, с более удобными map'ами для перемещения, fold'ингом, зачатками синтаксической подсветки и какие-там-ещё-вспомогательные-средства-могут-потребоваться :)
Спасибо сказали:
bear-cub
Сообщения: 20

Re: Тонкая настройка vim

Сообщение bear-cub »

jsv писал(а):
28.07.2006 14:34

Ну например, вот файл
=== строка ===
=== строка ===
=== строка ===

мне надо сделать
=== строка ===
Здесь я добавил свой коментарий

=== строка ===
И здесь два раза
И еще

=== строка ===
Ну и здесь отметился

Ну, например, вставив текст в первой секции:
^O/^===/+1CR
Вставив текст второй:
^On
и так далее... или ^O2j в обоих случаях, если они и впрямь подряд идут (вариант со стрелкой "курсор вниз" отбрасываем, как неспортивный :) )... затем, если, как в вашем посте, каждая секция представляет собой параграф, по ним можно перемещаться через ^O{ и ^O}

Это, если действительно не хочется покидать режим вставки... Лично я привык вставлять текст небольшими фрагментами, всё время возвращаясь в нормальный режим. Это уже почти рефлекс: закончил мысль (ну или что-то, её заменяющее) -- нажми esc (который у меня на caps lock смапирован).

А вообще, если надо часто работать с файлами такой структуры, я бы для них filetype определил, с более удобными map'ами для перемещения, fold'ингом, зачатками синтаксической подсветки и какие-там-ещё-вспомогательные-средства-могут-потребоваться :)
Спасибо за ответ и за совет.
filetype это конечно хорошо, но ктоб еще сказал, что за язык в вимовских скриптах используется
и есть ли его описание (рус\англ).
Да при таких вариантах перехода, я с Вами соглашусь, что лучше все же возвращатся в обычный режим.

А поделитесь, как caps lock замапировать?
А можно замапировать комбинацию <Ctrl> + <SHift> или <Ctrl> + <Alt> сколько доки ни рыл, не нашел, вариант как можно такой порядок задать, или например <Ctrl> + '<' тож...
Спасибо сказали:
jsv
Сообщения: 67

Re: Тонкая настройка vim

Сообщение jsv »

bear-cub писал(а):
29.07.2006 23:30
filetype это конечно хорошо, но ктоб еще сказал, что за язык в вимовских скриптах используется
и есть ли его описание (рус\англ).

:h user-manual. В особенности :h usr_41
bear-cub писал(а):
29.07.2006 23:30
Да при таких вариантах перехода, я с Вами соглашусь, что лучше все же возвращатся в обычный режим.

Ну, тому есть и более конструктивные причины. Скажем, команды типа "повторить последнее изменение" (.) или "перейти к месту последнего изменения" ('[, ']) удобнее использовать, когда изменения небольшие.
bear-cub писал(а):
29.07.2006 23:30
А поделитесь, как caps lock замапировать?

В Vim Tips полно советов на эту тему. Читайте, выбирайте, что больше по душе. :)

bear-cub писал(а):
29.07.2006 23:30
А можно замапировать комбинацию <Ctrl> + <SHift> или <Ctrl> + <Alt> сколько доки ни рыл, не нашел, вариант как можно такой порядок задать, или например <Ctrl> + '<' тож...

Я такого способа не знаю, но, по-правде сказать, я его и не искал.
Если бы я любил сочетания типа "Control-Shift-Meta-Hyper-Super-@", я бы до сих пор в емаксе сидел. :)
Спасибо сказали:
Аватара пользователя
pento
Сообщения: 403
ОС: Fedora 10

Re: Тонкая настройка vim

Сообщение pento »

А не подскажете как можно в Виме дублировать текущую строку?
Имхо, достаточно полезная фича...
Спасибо сказали:
Аватара пользователя
Warderer
Модератор
Сообщения: 1056
Статус: киберпИнгвин на гусеничном ходу
ОС: Debian unstable

Re: Тонкая настройка vim

Сообщение Warderer »

(pento @ Aug 2 2006, в 05:50) писал(а):А не подскажете как можно в Виме дублировать текущую строку?

yyp

У меня вылезли грабли. Пишу на python и вдруг вылезает:

Код: Выделить всё

Обнаружена ошибка при обработке function GetPythonIndent:
строка   30:
E121: Неопределенная переменная: dummy
Press ENTER or type command to continue
Обнаружена ошибка при обработке function GetPythonIndent:
строка   30:
E15: Недопустимое выражение: line('.') < 5 ? dummy : synIDattr(synID(line('.'), col('.'), 1), 'name') =~ '\(Comment\|String\)$'


Отступы выставлялись vim'ом автоматически, установлен пакет vim-python. В файле "/usr/share/vim/vim70/indent/python.vim" было обнаружено следующее:

Код: Выделить всё

" If the previous line is inside parenthesis, use the indent of the starting
  " line.
  " Trick: use the non-existing "dummy" variable to break out of the loop when
  " going too far back.
  call cursor(plnum, 1)
  let parlnum = searchpair('(\|{\|\[', '', ')\|}\|\]', 'nbW',
          \ "line('.') < " . (plnum - s:maxoff) . " ? dummy :"
          \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
          \ . " =~ '\\(Comment\\|String\\)$'")


Теперь сижу и думаю. То ли я как-то неправильно пишу, то ли vim как-то неправильно отступы расставляет. У кого-нибудь варианты будут?
Читаю вслух с выражением маны - $50/ч + стоимость звонка. Настраиваю сервисы за Вас - $100/ч + стоимость выезда и проживания.
И восемь строк матом...(бесплатно)
Спасибо сказали:
Аватара пользователя
pento
Сообщения: 403
ОС: Fedora 10

Re: Тонкая настройка vim

Сообщение pento »

(Warderer @ Aug 2 2006, в 12:42) писал(а):yyp

о, спасибо!
Спасибо сказали:
jsv
Сообщения: 67

Re: Тонкая настройка vim

Сообщение jsv »

Warderer писал(а):
02.08.2006 09:42
У меня вылезли грабли.

А пример питоновского кода, на котором это происходит, можно?

А так, что в голову приходит... В vim 7 у функций search и searchpair появился дополнительный аргумент: номер строки, дальше которой искать не надо. По идее, теперь вместо упомянутого трюка надо использовать этот аргумент. Можно попробовать переписать.
Спасибо сказали:
Аватара пользователя
Warderer
Модератор
Сообщения: 1056
Статус: киберпИнгвин на гусеничном ходу
ОС: Debian unstable

Re: Тонкая настройка vim

Сообщение Warderer »

jsv писал(а):
02.08.2006 11:04
Warderer писал(а):
02.08.2006 09:42

У меня вылезли грабли.

А пример питоновского кода, на котором это происходит, можно?

К сожалению, уже нельзя. Переписал, не оставив бэкапа. Заменил множественные раздельные присваивания по одному в каждой строке на длинную строку. Если снова вылезет - кину пример кода.
Читаю вслух с выражением маны - $50/ч + стоимость звонка. Настраиваю сервисы за Вас - $100/ч + стоимость выезда и проживания.
И восемь строк матом...(бесплатно)
Спасибо сказали:
bear-cub
Сообщения: 20

Re: Тонкая настройка vim

Сообщение bear-cub »

pento писал(а):
02.08.2006 05:50
А не подскажете как можно в Виме дублировать текущую строку?
Имхо, достаточно полезная фича...
Если строку, то ...
Курсор установить на нужную строку, нажать два раза Букву y, тобиш "yy" а потом в нужном месте нажать p
Спасибо сказали:
Аватара пользователя
pento
Сообщения: 403
ОС: Fedora 10

Re: Тонкая настройка vim

Сообщение pento »

bear-cub
то же самое ответили чуть выше ;)
Спасибо сказали:
jsv
Сообщения: 67

Re: Тонкая настройка vim

Сообщение jsv »

pento писал(а):
02.08.2006 05:50
А не подскажете как можно в Виме дублировать текущую строку?

Другой вариант -- команда :copy, она же :t
В скриптах или маппингах удобнее её использовать, чтобы содержимое регистров не менять.
Спасибо сказали:
bear-cub
Сообщения: 20

Re: Тонкая настройка vim

Сообщение bear-cub »

pento писал(а):
02.08.2006 12:46
bear-cub
то же самое ответили чуть выше ;)
Да, я отвечать начал утром, а закончил...
отвлекся так сказать ;)
Спасибо сказали:
Аватара пользователя
Warderer
Модератор
Сообщения: 1056
Статус: киберпИнгвин на гусеничном ходу
ОС: Debian unstable

Re: Тонкая настройка vim

Сообщение Warderer »

jsv писал(а):
02.08.2006 11:04
Warderer писал(а):
02.08.2006 09:42

У меня вылезли грабли.

А пример питоновского кода, на котором это происходит, можно?

А так, что в голову приходит... В vim 7 у функций search и searchpair появился дополнительный аргумент: номер строки, дальше которой искать не надо. По идее, теперь вместо упомянутого трюка надо использовать этот аргумент. Можно попробовать переписать.

Во! Снова вылезло! Прилагаю файл.
При обавлении строки ближе к концу файла vim начинает ругаться. Версия vim 7.0.35.

P.S. Знаю, что код корявый. Я языку только учусь.
Читаю вслух с выражением маны - $50/ч + стоимость звонка. Настраиваю сервисы за Вас - $100/ч + стоимость выезда и проживания.
И восемь строк матом...(бесплатно)
Спасибо сказали:
jsv
Сообщения: 67

Re: Тонкая настройка vim

Сообщение jsv »

Warderer писал(а):
02.08.2006 15:27
Во! Снова вылезло! Прилагаю файл.
При обавлении строки ближе к концу файла vim начинает ругаться. Версия vim 7.0.35.

У меня в 7.0.17 не ругается (с оригинальным python.vim).

Кроме :debug normal o ничего посоветовать не могу :)
Спасибо сказали:
Аватара пользователя
Warderer
Модератор
Сообщения: 1056
Статус: киберпИнгвин на гусеничном ходу
ОС: Debian unstable

Re: Тонкая настройка vim

Сообщение Warderer »

Огромное спасибо jsv! Проблема была в ~/.vimrc: set debug=msg. После того, как закомментировал эту строку - всё ходит нормально.
Читаю вслух с выражением маны - $50/ч + стоимость звонка. Настраиваю сервисы за Вас - $100/ч + стоимость выезда и проживания.
И восемь строк матом...(бесплатно)
Спасибо сказали:
Аватара пользователя
cubique
Сообщения: 25
ОС: mac os x 10.5.2 on mb

Re: Тонкая настройка vim

Сообщение cubique »

а у меня вот такой вопрос:

понадобилось мне тут с одним очень большим проектом поработать... там есть несколько файлов с кол-вом строк около 6000... в общем в vim наблюдается следующая беда: если открыто несколько таких больших файлов, то переход между ними (особенно если курсор находится где-нибудь в середине самого файла) сопровождается ужасно неприятной паузой, иногда длиной в пару секунд... а скакать надо достаточно часто и быстро... в чём может быть проблема? подскажите, пожалуйста.


на всякий случай прилагаю свой .vimrc

Код: Выделить всё

color cubique
syntax on
set helplang=ru,en
set guioptions-=T
set so=11
set guifont=DejaVu\ Sans\ Mono\ 8
set foldmethod=marker
set backup
set backupdir=~/.vim/backup
set vb
set linebreak
set nocompatible
set hlsearch
set incsearch
set ignorecase
set noincsearch
set smartcase
set autoindent
set shiftwidth=4
set tabstop=4
set softtabstop=4
set backspace=2
set showmode
set ruler
set nojoinspaces
set laststatus=2
set modelines=0
set title
set runtimepath=~/.vim,$VIMRUNTIME
set viminfo='20,\"50
set history=900
set ai
set showmatch
set nowrap
set showcmd
set wildmenu
set encoding=iso-8859-1
set termencoding=iso-8859-1
set undolevels=100
set ttyfast

map Q gq
map X <ESC>/[^ -~äöüÄÖÜß]<CR>

if &t_Co > 2 || has("gui_running")
    syntax on
    set hlsearch
endif

filetype plugin indent on

inoremap { {<CR>}<Esc>O

nmap <F2> :set nowrap<CR>
imap <F2> <ESC> :set nowrap<CR>i<Right>
nmap <F3> :set wrap<CR>
imap <F3> <ESC> :set wrap<CR>i<Right>

nmap <F12> :g/function/#<CR>
imap <F12> <ESC> :g/function/#<CR>i<Right>
nmap <F1> :bn<CR>
imap <F1> <ESC> :bn<CR>i<Right>

set wcm=<Tab>
menu Encoding.koi8-r :e ++enc=koi8-r<CR>
menu Encoding.windows-1251 :e ++enc=cp1251<CR>
menu Encoding.cp866 :e ++enc=cp866<CR>
menu Encoding.utf-8 :e ++enc=utf8 <CR>
map <F8> :emenu Encoding.<TAB>

map <silent> <c-l> :silent nohl<cr>

:ab e" echo "<pre>" . print_r (, true ) . "</pre>";
:ab ehco echo
:ab ehoc echo
Спасибо сказали:
jsv
Сообщения: 67

Re: Тонкая настройка vim

Сообщение jsv »

cubique писал(а):
04.08.2006 13:53
понадобилось мне тут с одним очень большим проектом поработать... там есть несколько файлов с кол-вом строк около 6000... в общем в vim наблюдается следующая беда: если открыто несколько таких больших файлов, то переход между ними (особенно если курсор находится где-нибудь в середине самого файла) сопровождается ужасно неприятной паузой, иногда длиной в пару секунд... а скакать надо достаточно часто и быстро... в чём может быть проблема? подскажите, пожалуйста.

Несколько файлов в 6000 строк, это не много, вообще-то. Хотя, смотря какой длины строки. :)

А filetype какой? Потому как первое, что приходит в голову, это подсветка синтаксиса. Она в виме любит и умеет тормозить.

В общем, я бы посмотрел, тормозит ли оно с syntax off и с filetype plugin off. Если дело в синтаксисе, то можно поиграться с :syn sync maxlines, ну и у самом синтакс-файле могут быть какие-нибудь настройки влияющие на производительность.
Спасибо сказали:
Аватара пользователя
cubique
Сообщения: 25
ОС: mac os x 10.5.2 on mb

Re: Тонкая настройка vim

Сообщение cubique »

jsv писал(а):
04.08.2006 15:58
cubique писал(а):
04.08.2006 13:53

понадобилось мне тут с одним очень большим проектом поработать... там есть несколько файлов с кол-вом строк около 6000... в общем в vim наблюдается следующая беда: если открыто несколько таких больших файлов, то переход между ними (особенно если курсор находится где-нибудь в середине самого файла) сопровождается ужасно неприятной паузой, иногда длиной в пару секунд... а скакать надо достаточно часто и быстро... в чём может быть проблема? подскажите, пожалуйста.

Несколько файлов в 6000 строк, это не много, вообще-то. Хотя, смотря какой длины строки. :)

А filetype какой? Потому как первое, что приходит в голову, это подсветка синтаксиса. Она в виме любит и умеет тормозить.

В общем, я бы посмотрел, тормозит ли оно с syntax off и с filetype plugin off. Если дело в синтаксисе, то можно поиграться с :syn sync maxlines, ну и у самом синтакс-файле могут быть какие-нибудь настройки влияющие на производительность.


спасибо за совет! :) сечас протестирую.
Спасибо сказали:
Аватара пользователя
WarlorD
Сообщения: 728
Статус: хочешь пропатчить KDE под FreeBSD - спроси меня как!
ОС: FreeBSD, Debian GNU\Linux

Re: Тонкая настройка vim

Сообщение WarlorD »

А вот возник такой вопрс, как сделать так, чтобы vim работал с частями одной очень длинной строки, как с несколькими строками. Пясню что имеется ввиду, допустим есть трока очень длинаая, vim при ее отображении переносит ее части так, чтобы все помещалась на экране, символ же перевода строки не вставляет, что собственно правильно.
Но вот при нажатии например клавши HOME или END ну или вверх и вниз, мы попадаем в реальное начало строки, которая на экране выглядит как несколько строк. Хотлось бы чтобы vim в таком случае переходил на так сказать "виртуальное" начало и конец стороки, тк не очеь удобно если хочется поправить нечто в длинной строке перемещаться в ее середину. Фу блин, как-то сумбурно вышло, но надеюсь понятно что я хотел сказать.
FreeBSD
Debian GNU\Linux
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Спасибо сказали:
jsv
Сообщения: 67

Re: Тонкая настройка vim

Сообщение jsv »

WarlorD писал(а):
13.08.2006 13:50
А вот возник такой вопрс, как сделать так, чтобы vim работал с частями одной очень длинной строки, как с несколькими строками.

gj, gk -- вверх/вниз
g^, g0, g<Home> -- в начало "строки"
g$, g<End> -- в конец "строки"
Спасибо сказали:
rjikzy
Сообщения: 33

Re: Тонкая настройка vim

Сообщение rjikzy »

Вопрос:
Как синхронизировать буфер обмена vim'a (не gvim'a) с Х-овым.
т.е. я выделяю текст (средствами vim'a, т.е. v - выделяю - y копирую), перехожу в X-овую прилагу - вставляю (например Shift-Ins).
Возможно ли такое?
Наткнулся на утилитку xclip, но что то не разобрался как с ней работать, хелп какой-то жиденький...
Ноут: Kubuntu 10.04
Рабочий десктоп: Kubuntu 9.10
Спасибо сказали: