Тонкая настройка vim (делимся полезностями в .vimrc. Вопросы задавайте в отдельных темах!)
Модератор: /dev/random
Re: Тонкая настройка vim
Внимательно прочел всю тему) нашел очень много для себя нового.
Но так и не понял как можно сделать чтобы настройки зависили от конкретного типа файла
(рытьё в $VIM/* не помогло наверное просто плохо искал)
т.е я хочу примерно следующее
if (файл_C++)
<настройки>
...
endif
как это можно сделать?
Но так и не понял как можно сделать чтобы настройки зависили от конкретного типа файла
(рытьё в $VIM/* не помогло наверное просто плохо искал)
т.е я хочу примерно следующее
if (файл_C++)
<настройки>
...
endif
как это можно сделать?
Мы должны построить мирное и свободное общество, где уважают права и свободы, где нет угнетённых, обиженных и несправедливо обделённых, где нет места ненависти и крови... построить его любой ценой.
Re: Тонкая настройка vim
BlackStar
Спасибо за наводку!
Привожу решение
Спасибо за наводку!
Привожу решение
Код: Выделить всё
au FileType c,cpp,h,hpp map <F5> :make<CR>
au FileType c,cpp,h,hpp map <F6> :!./%:r<CR>
Мы должны построить мирное и свободное общество, где уважают права и свободы, где нет угнетённых, обиженных и несправедливо обделённых, где нет места ненависти и крови... построить его любой ценой.
Re: Тонкая настройка vim
Вот такой вопрос нарисовался: возможно ли в vim7 задать функцию которая будет вызываться при смене режима? Хочу сделать, что бы каждый режим отображался своим цветом фона.
ivan-a-r_1.0-19791224.3_ru_i786.deb (testing)
Re: Тонкая настройка vim
Например так:
autocmd InsertEnter * hi Normal guibg=green
autocmd InsertLeave * hi Normal guibg=blue
autocmd InsertEnter * hi Normal guibg=green
autocmd InsertLeave * hi Normal guibg=blue
LightLang Team
- WarlorD
- Сообщения: 728
- Статус: хочешь пропатчить KDE под FreeBSD - спроси меня как!
- ОС: FreeBSD, Debian GNU\Linux
Re: Тонкая настройка vim
Хмм, а вот вопрос возник, как сделать функцию, удалающую строку по регекспу? На пустую-то заменить легко, а вот полностью удалить?
FreeBSD
Debian GNU\Linux
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Debian GNU\Linux
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
-
- Сообщения: 14
- WarlorD
- Сообщения: 728
- Статус: хочешь пропатчить KDE под FreeBSD - спроси меня как!
- ОС: FreeBSD, Debian GNU\Linux
Re: Тонкая настройка vim
sergio_nsk
thanks
thanks
FreeBSD
Debian GNU\Linux
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Debian GNU\Linux
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Re: Тонкая настройка vim
BlackStar, спасибо. То что надо
ivan-a-r_1.0-19791224.3_ru_i786.deb (testing)
Re: Тонкая настройка vim
Народ есть такие кто юзает пхп под вимом ? поскажите plz, можно ли в виме компилить php code (устаносить путь к компилятору и makeprg ?)
+ увидеть сразу html страничку ? или что бы сам opery с этой строничкой открывал на худой конец
+ увидеть сразу html страничку ? или что бы сам opery с этой строничкой открывал на худой конец
Re: Тонкая настройка vim
Не подскажете ли, как обеспечить маппирование Alt-комбинаций клавиш? Например, мне хочется, чтобы GVIM закрывался по Alt+X: пишу в vimrc:
map <M-x> :confirm qa <CR>
При попытке применить это в режиме вставки получаю букву "o".
:map даёт:
... ... ...
ш :confirm qa <CR>
... ... ...
Я заметил, что при наборе буквенных клавиш с Alt GVIM их преобразует в некий набор символов. Очень хотелось бы узнать: как правильно назначать свои команды на Alt-комбинации клавиш.
PS: VIM v7.0 для Windows. OS: Windows XP SP2.
map <M-x> :confirm qa <CR>
При попытке применить это в режиме вставки получаю букву "o".
:map даёт:
... ... ...
ш :confirm qa <CR>
... ... ...
Я заметил, что при наборе буквенных клавиш с Alt GVIM их преобразует в некий набор символов. Очень хотелось бы узнать: как правильно назначать свои команды на Alt-комбинации клавиш.
PS: VIM v7.0 для Windows. OS: Windows XP SP2.
Re: Тонкая настройка vim
NameRec
маппить надо для всех режимов
маппить надо для всех режимов
Re: Тонкая настройка vim
Очень прошу меня извинить за назойливость, в VIM я новичок, чайник, ламер - как хотите. Не могли бы Вы объяснить чуть-чуть поподробенее, как это для всех режимов? Мне казалось, что :map <M-x> :... работает для всех режимов? Если Вас не затруднит: приведите, пожалуйста пример.
Спасибо!
Спасибо!
Re: Тонкая настройка vim
:h map-overview внимательно читал до обращения сюда. Google просматривал. Нет ли каких нибудь практических рекомендаций? Меня смущает, что в результате команды :map обнаруживается не строка вида:
<M-x> :confirm qa <CR>
a:
ш :confirm qa <CR>
мне представляется, что отсутствие реакции на Alt+X обусловлено именно этим. Кроме того, как я уже говорил, нажатие Alt+X приводит к появлению буквы "o" в режиме вставки и, если маппировать:
map o :confirm qa
при нажатии Alt+X происходит выход и редактора. Может быть Вы знаете, почему это может происходить? Т.е. я имею ввиду, что может быть дело не в команде map, а в том, что VIM выполняет перекодировку символов, набираемых с помощью Alt? Где это посмотреть? Очень хотелось бы сделать из GVIM полноценное IDE, но вот такие мелочи сильно портят жизнь...
<M-x> :confirm qa <CR>
a:
ш :confirm qa <CR>
мне представляется, что отсутствие реакции на Alt+X обусловлено именно этим. Кроме того, как я уже говорил, нажатие Alt+X приводит к появлению буквы "o" в режиме вставки и, если маппировать:
map o :confirm qa
при нажатии Alt+X происходит выход и редактора. Может быть Вы знаете, почему это может происходить? Т.е. я имею ввиду, что может быть дело не в команде map, а в том, что VIM выполняет перекодировку символов, набираемых с помощью Alt? Где это посмотреть? Очень хотелось бы сделать из GVIM полноценное IDE, но вот такие мелочи сильно портят жизнь...
Re: Тонкая настройка vim
:map - распространяется на режимы: нормальный, визуальный, командный. Для режима вставки используется команда: imap.
imap <M-x> <Esc>:confirm qa<CR>
imap <M-x> <Esc>:confirm qa<CR>
LightLang Team
Re: Тонкая настройка vim
Ну, видимо, терминал/иксы/винда или что там у вас по Alt-x посылает не <M-x>, а что-то другое. И правильно делает, кстати.
Чтобы узнать, что именно приходит, можно нажать в режиме вставки ^V atl-x и посмотреть, что вставится. Именно это и надо мапировать.
Но я бы не советовал этого делать, такие сочетания совершенно не переносимы между терминалами и операционками.
Re: Тонкая настройка vim
В .vimrc у меня содержались команды:
imap <M-x> <Esc>:confirm qa<CR>
map! <M-x> :confirm qa <CR>
map <M-x> :confirm qa <CR>
lmap <M-x> :confirm qa <CR>
nmap <M-x> :confirm qa <CR>
cmap <M-x> :confirm qa <CR>
xmap <M-x> :confirm qa <CR>
smap <M-x> :confirm qa <CR>
vmap <M-x> :confirm qa <CR>
Первую я вставил по Вашей рекомендации. Вот что выдаёт :imap
... ... ...
ш <Esc>:confirm qa<CR>
... ... ...
Alt+X по-прежнему не работает. Появилось ощущение, что дело в кодировке буфера. Есть какие-нибудь мысли?
imap <M-x> <Esc>:confirm qa<CR>
map! <M-x> :confirm qa <CR>
map <M-x> :confirm qa <CR>
lmap <M-x> :confirm qa <CR>
nmap <M-x> :confirm qa <CR>
cmap <M-x> :confirm qa <CR>
xmap <M-x> :confirm qa <CR>
smap <M-x> :confirm qa <CR>
vmap <M-x> :confirm qa <CR>
Первую я вставил по Вашей рекомендации. Вот что выдаёт :imap
... ... ...
ш <Esc>:confirm qa<CR>
... ... ...
Alt+X по-прежнему не работает. Появилось ощущение, что дело в кодировке буфера. Есть какие-нибудь мысли?
Re: Тонкая настройка vim
Мне известно, что реально посылается латинская буква "o".
Чтож тут правильного? По документации <M-x> синоним Alt+X. В куче примеров (см. Cream for VIM) - тоже.
Про ^V я узнал от Вас. Интересно. Но у меня после ^V рисуется символ "^" а при нажатии на Alt+X ничего не происходит, т.е. ничего не выводится в позиции курсора.
Почему? Неужели в Linux не работает Alt+X? Или во FreeBSD? Что, собственно, не является переносимым?
Re: Тонкая настройка vim
Увы - не помогает (. Как и следует из документации горячие клавиши в меню работать перестали, но ситуация не изменилась. Кроме того, по документации, положение этого флага по-умолчанию (winaltkeys=no) означает приоритет меню в обработке Alt-комбинаций, другие же Alt-сочетания доступны для маппирования.
Мне по роду работы приходится иметь дело только с Windows, поэтому для меня на первом месте вопросы удобства (в моём понимании), а не совместимости. Ну раз уж речь зашла о последней, хотелось бы выяснить: я правильно понимаю, что в *nix Alt-сочетаниями пользоваться не принято? Мне это кажется странным потому, что я видел в примерах .vimrc использование, в частности Alt+A, Alt+F и пр. Cream for VIM поставляется с такими сочетаниями в cream-keys.vim. Что, собственно, здесь плохого?
Сейчас мне кажется, что дело в кодировке. Я выяснил, что в cp1251 Alt+X означает латинскую "o", в utf-8 уже другое. Интересно: по какому принципу VIM преобразует Alt-последовательности?
Re: Тонкая настройка vim
Alt-сочетаниями не принято пользоваться в виме. Ими принято пользоваться в емаксе
В виме обычно работают в терминале, а терминалы обычно транслируют alt+<символ> одним из 2 способов: либо устанавливая 8-й бит, либо посылая последовательнось <escape>+<символ>. То бишь их довольно трудно отличить от русских букв в одном случае и от последовательного нажатия 2 разных кнопок -- в другом. К слову сказать, в вимовской нотации <M-x> как раз и означает x с установленным 8-м битом, именно поэтому вам :map ш и показывает.
Re: Тонкая настройка vim
jsv писал(а): ↑20.02.2007 16:17В виме обычно работают в терминале, а терминалы обычно транслируют alt+<символ> одним из 2 способов: либо устанавливая 8-й бит, либо посылая последовательнось <escape>+<символ>. То бишь их довольно трудно отличить от русских букв в одном случае и от последовательного нажатия 2 разных кнопок -- в другом. К слову сказать, в вимовской нотации <M-x> как раз и означает x с установленным 8-м битом, именно поэтому вам :map ш и показывает.
Я проникся. Круто. Мне бы такое в голову не пришло. Это многое объясняет. Интересно, есть ли возможность заставить GVIM всегда транслировать Alt-последовательности в <ESC> + <клавиша>?
Re: Тонкая настройка vim
после презентации Vim Andrei Zmievski выложил интересные доки
"VIM for (PHP) Programmers" slides and resources
и собственно pdf
коротко и без лишних слов
отличная агитка
"VIM for (PHP) Programmers" slides and resources
и собственно pdf
коротко и без лишних слов
отличная агитка
slackware - linux for human brains
Re: Тонкая настройка vim
nonstop писал(а): ↑22.02.2007 12:37после презентации Vim Andrei Zmievski выложил интересные доки
"VIM for (PHP) Programmers" slides and resources
и собственно pdf
коротко и без лишних слов
отличная агитка
Спасибо за ссылку. Только чувствую, что доводить до состояния "привычного" Multi-Edit придётся долго... Но попробую!
Re: Тонкая настройка vim
Кто-нибудь может объяснить толково, чем отличается обычный маппинг типа
от такого
?
Вот nore вообще для чего?
Код: Выделить всё
" F3 - list all errors
nmap <F3> :copen<cr>
от такого
Код: Выделить всё
" F3 - list all errors
nnoremap <F3> :copen<cr>
?
Вот nore вообще для чего?
Re: Тонкая настройка vim
:help map
:nm[ap] {lhs} {rhs} *:nm* *:nmap*
Map the key sequence {lhs} to {rhs} for the modes
where the map command applies. The result, including
{rhs}, is then further scanned for mappings. This
allows for nested and recursive use of mappings.
:no[remap] {lhs} {rhs} *:no* *:noremap*
Map the key sequence {lhs} to {rhs} for the modes
where the map command applies. Disallow mapping of
{rhs}, to avoid nested and recursive mappings. Often
used to redefine a command. {not in Vi}
slackware - linux for human brains
Re: Тонкая настройка vim
(nonstop @ Feb 23 2007, в 11:26) писал(а):Disallow mapping of
{rhs}, to avoid nested and recursive mappings.
Можешь пояснить?
Re: Тонкая настройка vim
запрещает навесить на клавишу что-то еще, т.е. перекрыть предыдущий map
теория, надо попробовать самому
slackware - linux for human brains