Тонкая настройка vim (делимся полезностями в .vimrc. Вопросы задавайте в отдельных темах!)
Модератор: /dev/random
-
- Сообщения: 10
Re: Тонкая настройка vim
Справился с этим.
Оказалось, что у меня langmap не совсем правильно сделан.
Оказалось, что у меня langmap не совсем правильно сделан.
-
- Сообщения: 67
Re: Тонкая настройка vim
Беспорядочные комментарии ко всей нитке сразу:

(^R -- это один символ, вбитый через ^V^R)
Странно, у меня и при laststatus=1 статусбар замечательно пропадает при единственном открытом окне.
Только ruler остаётся, но он не мешает. А если мешает, :set noruler должно помочь.
Из кажется-неупомянутого (прошу прощения за возможные повторы):
Есть незаменимый при редактировании конфигов плагин Тoggle, позволяющий нажатием одной кнопки менять yes на no, true на false и т.п. Судя по подозрительно низкой карме этого скрипта, он нравится только мне
Другие плагины, которыми постоянно пользуюсь:
ManPageView -- смотрелка манов, более удобная, чем !man.
Enhanсed Commentify -- кодокомментатор.
NetDict -- интерфейс к dictd.
Align -- выравнимание кода и не только по самым разным критериям. Могучая вещь, требующая требующая некоторых усилий для изучения и настройки. Но усилия эти вполне окупаются.
Очень полезно определить что-то вроде:
и перед вставкой из внешнего clipboard нажимать эту самую <F11>. Прощайте, тесты "лесенкой"
Печать (через :hardcopy) 2-х страниц на лист:
Автоматическая смена рабочего каталога при смене буфера:
Удаление пустых отквоченных строк при ответе из mutt'a:
Хватит пока. Неисчерпаемая тема сокобана, конечно, не раскрыта, но как-нибудь в другой раз.
Есть чуть более элегантный "финт ушами": set wh=999 и тогда в мэпах ^W_ не требуется. Вообще, манипулируя переменными семейства winheight, можно забавные вещи творить.

Решение, легче переносимое между платформами, чем "r!date" -- использовать встроенную в vim функцию strftime. Например, через аббревиатуру:
Код: Выделить всё
iab Ydate ^R=strftime("%d.%m.%Y")<cr>
iab Ytime ^R=strftime("%X")<cr>
(^R -- это один символ, вбитый через ^V^R)
Dark_Savant писал(а): ↑17.10.2005 14:28кстати, товарищи, как ликвидировать статусбар ? вообще чтоб. а то при чтении художки мешает %) laststatus=0 - просто переносит на командлайн.
Странно, у меня и при laststatus=1 статусбар замечательно пропадает при единственном открытом окне.
Только ruler остаётся, но он не мешает. А если мешает, :set noruler должно помочь.

Из кажется-неупомянутого (прошу прощения за возможные повторы):
Есть незаменимый при редактировании конфигов плагин Тoggle, позволяющий нажатием одной кнопки менять yes на no, true на false и т.п. Судя по подозрительно низкой карме этого скрипта, он нравится только мне

Другие плагины, которыми постоянно пользуюсь:
ManPageView -- смотрелка манов, более удобная, чем !man.
Enhanсed Commentify -- кодокомментатор.
NetDict -- интерфейс к dictd.
Align -- выравнимание кода и не только по самым разным критериям. Могучая вещь, требующая требующая некоторых усилий для изучения и настройки. Но усилия эти вполне окупаются.
Очень полезно определить что-то вроде:
Код: Выделить всё
set pastetoggle=<F11>
и перед вставкой из внешнего clipboard нажимать эту самую <F11>. Прощайте, тесты "лесенкой"

Печать (через :hardcopy) 2-х страниц на лист:
Код: Выделить всё
function! TwoPage_Print(fname)
call system("lpr -o number-up=2 " . a:fname)
call delete(a:fname)
return v:shell_error
endfunction
set printexpr=TwoPage_Print(v:fname_in)
Автоматическая смена рабочего каталога при смене буфера:
Код: Выделить всё
function! Safe_cd ()
let path=expand('%:h')
let path=substitute(path,"^.\\{-1,}:","","")
if isdirectory(path)
execute "cd " . path
endif
endfunction
au BufEnter * call Safe_cd()
Удаление пустых отквоченных строк при ответе из mutt'a:
Код: Выделить всё
au BufReadPost /tmp/mutt-* sil %s/^\(>\s*\)\+$//e
Хватит пока. Неисчерпаемая тема сокобана, конечно, не раскрыта, но как-нибудь в другой раз.

-
- Бывший модератор
- Сообщения: 1100
- Статус: киборг
- ОС: Cyborg OS 0.0.1.3
Re: Тонкая настройка vim
попробовал toogle - класcная штука. действительно странно, что столь замечательный плугин малопопулярен.
I'm a tragic hero
In this game called life
My chances go to zero
But I always will survive
In this game called life
My chances go to zero
But I always will survive
-
- Сообщения: 3
Re: Тонкая настройка vim
Подскажите, плз, как закоментировать несколько строк. Пока смотрю в сторону Enhanсed Commentify. Но что-то не въеду как его подключить :( Пните в нужном направлении.
Мож еще кто чем пользуется?
Спасибо.
Мож еще кто чем пользуется?
Спасибо.
-
- Сообщения: 67
Re: Тонкая настройка vim
Скачать, извлечь в ~/.vim, сделать :helptags ~/.vim/doc и потом читать :help EnhancedCommentify, пока не надоест

По-умолчанию он вешается на \c. Соответственно, чтобы закомментировать несколько строк, выделяешь их в visual mode и жмёшь эти самые \c. Остальные подробности в документации.
-
- Сообщения: 3
Re: Тонкая настройка vim
(jsv @ Mar 22 2006, в 13:38) писал(а):Скачать, извлечь в ~/.vim, сделать :helptags ~/.vim/doc и потом читать :help EnhancedCommentify, пока не надоест smile.gif
читал...просветления не наступило :-\ англишем владею не в совершенстве..
конкретизирую вопросы:
1) у плагина, я так понял, есть настройки по умолчанию. в vimrc прописываются только отступления от свойств по умолчанию, или я не прав? в догонку, всегда ли при подключении плагина его надо прописывать в vimrc?
2) что в Вашей системе обозначений значит \c ?
зы. всегда пользовался вимом с минимальными настройками в vimrc и без плагинов... захотел расширить функциональность, поэтому столько вопросов.
-
- Сообщения: 67
Re: Тонкая настройка vim
Если умолчания устраивают, можно в vimrc ничего не прописывать. А в некоторых простых плагинах так вообще ничего не настраивается, так что и прописывать нечего.
Про EnhancedCommentify у меня в vimrc только это:
Код: Выделить всё
let g:EnhCommentifyPretty = 'Yes'
let g:EnhCommentifyBindInInsert = 'No'
Нажать кнопку '\', потом нажать кнопку 'c'.
Первая кнопка может быть и не '\', это зависит от значения переменной mapleader. По умолчанию там обычно '\'.
-
- Сообщения: 87
Re: Тонкая настройка vim
Подскажите что нужно добавить в конфиг, что бы в режиме вставки по ctrl+backspace удалялись все символы до предыдущего слова (ну или разделителя)?
-
- Сообщения: 1030
- Статус: собирающий миры
- ОС: Debian
Re: Тонкая настройка vim
Поставил сегодня vim-7.0_beta, vim-spell-ru и vim-spell-en. Нарисовал в конфиге:
Красота! B)
Код: Выделить всё
"...
set spellfile=~/.vim/spell/ru.utf-8.add
set wildmenu
set wcm=<Tab>
menu VVspell.enable_ru :setlocal spell spelllang=ru<CR>
menu VVspell.enable_en :setlocal spell spelllang=en<CR>
menu VVspell.enable_enru :setlocal spell spelllang=en,ru<CR>
menu Encoding.koi8-r :e ++enc=koi8-r<CR>
menu Encoding.windows-1251 :e ++enc=cp1251<CR>
menu Encoding.ibm-866 :e ++enc=ibm866<CR>
menu Encoding.utf-8 :e ++enc=utf-8<CR>
menu Encoding.SpellMenu :emenu VVspell.<TAB>
map <F8> :emenu Encoding.<TAB>
"...
Красота! B)
Molchanov Alexander (aka Xor)
*offtopic* - ololo!
*offtopic* - ololo!
-
- Сообщения: 2
Re: Тонкая настройка vim
Вопрос не совсем по vim. Насмотрелся я на эти все советы, начал мапить всё и вся. И обнаружил, что единственный теминал, который понимает все комбинации с Ctrl, Alt, Shift - это встроенный в GVim. Остальные игнорируют либо неправильно их интерпритируют. А хотелось бы запускать его в чём-нибудь полегче. У кого какой был в этом вопросе опыт? Кстати, локаль - утф8, так что смотрю в сторону xterm/urxvt.
-
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: Тонкая настройка vim
хм. у меня очень многие сочетания с контролом и альтом вообще до терминала не доходят, потому как их еще оконный манагер выкусывает (:
с другой стороны, я даже то, что у меня в конфиг вбито не всегда использую, продолжая тупо хреначить команды, так у меня там мало сочетаний. а если много - совсем запутаться можно.
так что, удачи тебе в поисках. но я вот ничего в свое время не нашел, забил на все это, и не жалею теперь.
с другой стороны, я даже то, что у меня в конфиг вбито не всегда использую, продолжая тупо хреначить команды, так у меня там мало сочетаний. а если много - совсем запутаться можно.
так что, удачи тебе в поисках. но я вот ничего в свое время не нашел, забил на все это, и не жалею теперь.
слава роботам!
-
- Сообщения: 1030
- Статус: собирающий миры
- ОС: Debian
Re: Тонкая настройка vim
обычный xterm решает все проблемы (в своё время кучу терминалов перепробовал - в результате вернулся к нему)
Molchanov Alexander (aka Xor)
*offtopic* - ololo!
*offtopic* - ololo!
-
- Сообщения: 2
Re: Тонкая настройка vim
Не, встроенный в GVim терминал-то их понимает.потому как их еще оконный манагер выкусывает (:
Я клавиатурщик, к хоткеям - особая любовь.я даже то, что у меня в конфиг вбито не всегда использую
Конечно, и к ним можно привыкнуть (уже начинаю), но это не выход, иногда хочется замапить что-то совсем головоломное.продолжая тупо хреначить команды
у меня он не ловит не Ctrl ни Alt.обычный xterm решает все проблемы
-
- Сообщения: 236
- Статус: C++ Pro
- ОС: Suse10.2/XP
Re: Тонкая настройка vim
У меня вот такой вопрос. Извините, если он покажится вам глупым и легко решаемым. Так вот я только вчера начал его изучать, то что продолжу несомненно, вот еще все странички сохраню, чтобы его под себя настроить. Мой вопрос касается настройки, а именно дейсвтия undo. vi делает undo только один раз? Т.е. я в файле наделал изменений, вхожу в командый режим, и нажимаю "u", он отменяет последнее изменение, я нажимаю еще раз, чтобы он начал отменить еще и предыдущие, но он этого не делает. Вместо этого он опять делает, то что я отменил и получается цикл - убрать/вставить. Я правда еще не пробовал с числом эту команду давать, но можно ли настроить так, что undo можно было делать много раз?
-
- Сообщения: 27
Re: Тонкая настройка vim
GRS писал(а): ↑11.05.2006 08:22У меня вот такой вопрос. Извините, если он покажится вам глупым и легко решаемым. Так вот я только вчера начал его изучать, то что продолжу несомненно, вот еще все странички сохраню, чтобы его под себя настроить. Мой вопрос касается настройки, а именно дейсвтия undo. vi делает undo только один раз? Т.е. я в файле наделал изменений, вхожу в командый режим, и нажимаю "u", он отменяет последнее изменение, я нажимаю еще раз, чтобы он начал отменить еще и предыдущие, но он этого не делает. Вместо этого он опять делает, то что я отменил и получается цикл - убрать/вставить. Я правда еще не пробовал с числом эту команду давать, но можно ли настроить так, что undo можно было делать много раз?
vi именно так и делает (как ты описал). Многократный undo появился в vim. Соответственно, надо его поставить.
-
- Сообщения: 236
- Статус: C++ Pro
- ОС: Suse10.2/XP
Re: Тонкая настройка vim
У меня в vim не работает tab, так как надо, то есть автодополнение. Можно ли исправить?
-
- Сообщения: 67
Re: Тонкая настройка vim
Не работает где? Если в коммандной строке, то, cкорее всего, надо смотреть в сторону опций wildchar, wildmode и wildmenu.
Если же не работает дополнение по табу в набираемом тексте (в режиме вставки), то оно и не должно (подробнее -- :help i_^X).
Хотя, есть плагин supertab (где-то выше в этой нитке я давал ссылку), который вешает дополнение на таб.
-
- Сообщения: 231
-
- Сообщения: 20
Re: Тонкая настройка vim
sdk писал(а): ↑19.10.2004 22:53madskull
Попробуй вот так: (пришлось пошерудить доки)
Код: Выделить всё
:set foldmethod=expr :set foldexpr=getline(v:lnum)=~'^sub'&&getline(v:lnum+1)=~'^{'?'>1':getline(v:lnum)=~'}'?'s1':'-1'
У меня на тестовом примере заработало.
ЗЫ. В виме нет ничего невозможного -- убеждаюсь снова и снова! :thumbsup:
Надеюсь топик еще не умер

Пробовал делать такое же с другими коментариями, но у меня не вышло.
Может кто нить сможет мне помочь?
Коментарий начала складки такой: --<бла бла>
Коментарий окончания складки такой: --<\бла бла>
(это SQL)
Думаю можно как то определить по первым 4 символам,
но у меня не получается, все складывается в одну складку.
Начало вкладки я определил так (привожу только само выражение) ^--<[^\/].*$
А окончание складки так: ^--<\/.*$
Но это не работает.
Спасибо
-
- Сообщения: 51
Re: Тонкая настройка vim
как в виме автоматом начинать новый комментарий? В емаксе по умолчанию это M-;
т.е. пишешь:
some_actions(); нажимаешь <M-;> и на эту же строку вставляется коммент
в доках так этого и не наешел
EnchancedCommentify комментирует только существующую строку.
т.е. пишешь:
some_actions(); нажимаешь <M-;> и на эту же строку вставляется коммент
в доках так этого и не наешел
EnchancedCommentify комментирует только существующую строку.
-
- Сообщения: 67
Re: Тонкая настройка vim
Можно посмотреть в сторону NERD Commenter, там что-то такое есть. Правда, он вставляет просто в конец строки, а не равняется по comment-column, как в емаксе.
Чтобы делать выравненные комментарии справа от текста, проще всего, наверное, вбивать их как бог на душу положит (для этого вообще никаких плагинов не надо, в крайнем случае можно mapping определить

Сам я так и делаю. Хотя я вообще комментарии в конце строк не люблю, так что делаю я это нечасто.

-
- Сообщения: 51
Re: Тонкая настройка vim
Второй вопрос: пользовался ли кто нибудь штукой под названием OmniCppCompletion?
Мне никак заставить ее работать нормально не удается:
для функций в глобальном пространстве имен она работает.
с функциями стандартной библиотеки тоже более менее.
а вот когда пишешь такую вещь:
temp.h:
class Test
{
private:
int k;
public:
int get_k() { return k; }
};
temp.cpp:
Test test;
test. /* Здесь должно высветиться фукнция get_k() . Но почему то это дело не работает (C-x C-o) */
тег файл генерируется правильно: командой: exuberant-ctags -Ra --fields=iaS --extra=+q --c++-kinds=+p
:tag Test работает пра-но.
Мне никак заставить ее работать нормально не удается:
для функций в глобальном пространстве имен она работает.
с функциями стандартной библиотеки тоже более менее.
а вот когда пишешь такую вещь:
temp.h:
class Test
{
private:
int k;
public:
int get_k() { return k; }
};
temp.cpp:
Test test;
test. /* Здесь должно высветиться фукнция get_k() . Но почему то это дело не работает (C-x C-o) */
тег файл генерируется правильно: командой: exuberant-ctags -Ra --fields=iaS --extra=+q --c++-kinds=+p
:tag Test работает пра-но.
-
- Сообщения: 403
- ОС: Fedora 10
Re: Тонкая настройка vim
Всем привет!
Не подскажете , как можно сделать подсветку скобок, в том числе и фигурных, в виме?
Не подскажете , как можно сделать подсветку скобок, в том числе и фигурных, в виме?
-
- Бывший модератор
- Сообщения: 210
Re: Тонкая настройка vim
Обновиться до 7-ой версии 

Серьезность - это способ сделать простые вещи сложными.
Если много знать - устанут глаза. Если много спать - то нет.
Нас никому не сбить с пути - нам пофигу куда идти.
:-)
Если много знать - устанут глаза. Если много спать - то нет.
Нас никому не сбить с пути - нам пофигу куда идти.
:-)
-
- Сообщения: 403
- ОС: Fedora 10
Re: Тонкая настройка vim
(sdk @ Jul 4 2006, в 01:11) писал(а):Обновиться до 7-ой версии wink.gif
Спасибо =)
-
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
-
- Сообщения: 403
- ОС: Fedora 10
Re: Тонкая настройка vim
sdk
А не подскажете, как это сделать в 7-ке?
А не подскажете, как это сделать в 7-ке?
-
- Сообщения: 1019
- Статус: Экс-металлюга