Тонкая настройка vim (делимся полезностями в .vimrc. Вопросы задавайте в отдельных темах!)
Модератор: /dev/random
Re: Тонкая настройка vim
очень прошу структурировать это раздел в виде FAQ'а или иначе. Ведь очень много ценной и полезной информации, а пользоваться - неудобно. (Сам я vim'e новичок, так что выполнить этотблагородный труд врядли смогу... )
Re: Тонкая настройка vim
Attila, Кстати хорошая идея. Если будет время на выходных, то займусь =)
- NorthDragon
- Сообщения: 62
- ОС: ArchLinux
- Контактная информация:
Re: Тонкая настройка vim
А можно в виме как-нибудь настроить, что-бы при использовании автодополнения список уменьшался, а не исчезал по мере дальнейшего набора текста(как во всех ИДЕ).....
Re: Тонкая настройка vim
Народ поскажите какой вы ctags используете. Никак я не пойму. Вот тут где-то в теме упоминается версия 5.6, на vim.org я нашел ctags версии только 2.0, 2.1. Зато там какой-то мегапопулярный taglist, у него версий много.
Хочется себе сделать аналагично, как в этом посте на скрине.
И вообще я как-то в них запутался.
И еще вот хочется узнать, что за скрипт вот это делает
elide,
///////
Так впринципе все понятно, rc на 2 страницах выше Elide скачал Там вроде все есть.
У меня вот какой вопрос остался по vim, как там вкладками пользоватся, как настроить свои конбинации клавиш ? И почему так мало мануалов по этому, сплошные мануалы со списком команд в сети лежат, а том как что-нибудь на свое поправить без поллитры не сообразишь.
И вот еще что вспомнил.
Хочется две полезные фичи из Visual Assist.
1) Быстрый переход по горячим клавишам между h и cpp соответствующими (одинаковое имя и находятся в одном каталоге).
2) По нажатию горячей клавиши список всех открытых файлов и чтобы можно было нужный выбрать набрав 2-3 символа и вниз/вверх пару раз нажать, выделить нужный файл и его сделать активным.
Такие штуки или какие-нибудь похожие по функциональности уже созданы ?
Хочется себе сделать аналагично, как в этом посте на скрине.
И вообще я как-то в них запутался.
И еще вот хочется узнать, что за скрипт вот это делает
elide,
=== особенно для выявления ошибок компиляции
ах вот вы как это делаете... собираете в отдельном терминале, а потом глазками по номерам строк находите ошибки в тексте?
а мы-то, глупые, собираем прямо из vim и потом пользуемся автоподсветкой строк с ошибками и переходом между ошибками одним нажатием....
///////
Так впринципе все понятно, rc на 2 страницах выше Elide скачал Там вроде все есть.
У меня вот какой вопрос остался по vim, как там вкладками пользоватся, как настроить свои конбинации клавиш ? И почему так мало мануалов по этому, сплошные мануалы со списком команд в сети лежат, а том как что-нибудь на свое поправить без поллитры не сообразишь.
И вот еще что вспомнил.
Хочется две полезные фичи из Visual Assist.
1) Быстрый переход по горячим клавишам между h и cpp соответствующими (одинаковое имя и находятся в одном каталоге).
2) По нажатию горячей клавиши список всех открытых файлов и чтобы можно было нужный выбрать набрав 2-3 символа и вниз/вверх пару раз нажать, выделить нужный файл и его сделать активным.
Такие штуки или какие-нибудь похожие по функциональности уже созданы ?
- sarutobi
- Сообщения: 676
- Статус: Добрость и скромнота
- ОС: Debian 5, FreeBSD 6.2/8.0
- Контактная информация:
Re: Тонкая настройка vim
настроить свои комбинации клавиш - :h [ion]map
для тегов я использую taglist :TlistSessionSave <file> :TlistSessionRestore <filename>
Если интеерсно - могу как и elide бросить свой .vimrc и список плагинов
для тегов я использую taglist :TlistSessionSave <file> :TlistSessionRestore <filename>
Если интеерсно - могу как и elide бросить свой .vimrc и список плагинов
Fire and water, earth and sky - mistery surrounds us, legends never die!
Re: Тонкая настройка vim
Есть ли аналог eshell в emacs у vim (gvim)? Я нашел некий vimshell (http://www.wana.at/vimshell/), но с gvim он отказался работать.
:shell убог и не совсем то, что надо.
:shell убог и не совсем то, что надо.
Re: Тонкая настройка vim
по поводу ctags я уже писал где то на предыдущей странице. ctags -- сторонняя программа, она составляет нечто вроде сводки по всем классам, методам и полям в С/С++ файлах. А плагины типа taglist и omnicppcomplite используют ctags. У меня нормально всё работает только с последней версией ctags (5.6)
- NorthDragon
- Сообщения: 62
- ОС: ArchLinux
- Контактная информация:
Re: Тонкая настройка vim
NorthDragon писал(а): ↑01.06.2007 16:04А можно в виме как-нибудь настроить, что-бы при использовании автодополнения список уменьшался, а не исчезал по мере дальнейшего набора текста(как во всех ИДЕ).....
Неужели никто даже не задумывался о такой фиче?
Re: Тонкая настройка vim
NorthDragon писал(а): ↑06.06.2007 16:08NorthDragon писал(а): ↑01.06.2007 16:04А можно в виме как-нибудь настроить, что-бы при использовании автодополнения список уменьшался, а не исчезал по мере дальнейшего набора текста(как во всех ИДЕ).....
Неужели никто даже не задумывался о такой фиче?
Ничего не настраивал - список уменьшается.
LightLang Team
- NorthDragon
- Сообщения: 62
- ОС: ArchLinux
- Контактная информация:
Re: Тонкая настройка vim
to sdk, madskul
:set foldexpr=getline(v:lnum)=~'^sub'&&getline(v:lnum+1)=~'^{'?'>1':getline(v:lnum)=~'^}'?'s1':'-1'
Мужики, расшифруйте структуру, что есть что,
пытался переделать под свои нужды, не могу понять что и как.
Приведенный пример работает только с одним уровнем вложенности
а мне надо иметь возможность делать вложенные блоки.
как я понял, поправте что не так
:set foldexpr=
<поисковое выражение начала блока>
? <уровень вкладки ДО блока>
: <поисковое выражение конца блока>
? <уровень вклади БЛОКА>
: <уровень вкладки ПОСЛЕ блока>
<поисковое выражение>=
getline(v:lnum)=~'<текст, который ищем>'
Собственно я пытаюсь добится вложенных складок по принципу {{{ и }}}
только вместо {{{ и }}} хочу сделать --< и --</
Вот пример:
--<folding 1>
--<folding 2-1>
print 'some 1'
--</folding 2-1>
--<folding 2-2>
print 'some 2'
--</folding 2-2>
print 'some 3'
--</folding 1>
:set foldexpr=getline(v:lnum)=~'^sub'&&getline(v:lnum+1)=~'^{'?'>1':getline(v:lnum)=~'^}'?'s1':'-1'
Мужики, расшифруйте структуру, что есть что,
пытался переделать под свои нужды, не могу понять что и как.
Приведенный пример работает только с одним уровнем вложенности
а мне надо иметь возможность делать вложенные блоки.
как я понял, поправте что не так
:set foldexpr=
<поисковое выражение начала блока>
? <уровень вкладки ДО блока>
: <поисковое выражение конца блока>
? <уровень вклади БЛОКА>
: <уровень вкладки ПОСЛЕ блока>
<поисковое выражение>=
getline(v:lnum)=~'<текст, который ищем>'
Собственно я пытаюсь добится вложенных складок по принципу {{{ и }}}
только вместо {{{ и }}} хочу сделать --< и --</
Вот пример:
--<folding 1>
--<folding 2-1>
print 'some 1'
--</folding 2-1>
--<folding 2-2>
print 'some 2'
--</folding 2-2>
print 'some 3'
--</folding 1>
Re: Тонкая настройка vim
vim открыт почти целый день, добавил в statusline часы
если кто не видел еще:
http://www.viemu.com/vi-vim-cheat-sheet.gif
Код: Выделить всё
set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P\ %{strftime(\"%a\ %b\ %d\ -\ %H:%M\")}
если кто не видел еще:
http://www.viemu.com/vi-vim-cheat-sheet.gif
slackware - linux for human brains
Re: Тонкая настройка vim
Добрый день!
Простите за банальный вопрос новичка...
Как мне в консольном Vim ввести символы #, №? Где то видел, что есть последовательность символов для отображения, но вот где видел, найти не могу теперь ((
Ps. # вводится при русской раскладке, но неудобно в си переключаться взад назад...
Простите за банальный вопрос новичка...
Как мне в консольном Vim ввести символы #, №? Где то видел, что есть последовательность символов для отображения, но вот где видел, найти не могу теперь ((
Ps. # вводится при русской раскладке, но неудобно в си переключаться взад назад...
Re: Тонкая настройка vim
algol84, наверно, разговор про?
Код: Выделить всё
:h digraph.txt
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Re: Тонкая настройка vim
Проблема с плагинами.
Стоит vim 6.4, которые уже никто не поддерживает, поэтому скачал 7.1 и собрал его. Прав рутовсих нет, поэтому запихал в свою дирикторию bin. Создал скриптик и запускаю его через runvim.
Хотел уже собственно сделать заключетильное дело, установить плагины и пользоватся ими - и фиг.
Вначале установил все котороые у меня были (BufExplorer,OmniComplete,taglist) - при старте куча ошибок
Решил их по очереди установить и опробовать. Первый по алфавиту BufExplorer. Вставил его в нужное место (~/,vim/plugin), запускаю runvim (версия 7.1 при старте, bufexplorer написанона работает с 7.0 и выше). Читаю доку к плагину.
Попробовал все команды - ни одну vim говорит не знаю. Команды \be - и другие начинающие со обратного слеша, он не дает ввести.
В чем проблема, как решить ?
Стоит vim 6.4, которые уже никто не поддерживает, поэтому скачал 7.1 и собрал его. Прав рутовсих нет, поэтому запихал в свою дирикторию bin. Создал скриптик и запускаю его через runvim.
Хотел уже собственно сделать заключетильное дело, установить плагины и пользоватся ими - и фиг.
Вначале установил все котороые у меня были (BufExplorer,OmniComplete,taglist) - при старте куча ошибок
Error detected while processing /home/***/.vim/plugin/complete.vim:
line 12:
E117: Unknown function: omni#cpp#settings#Init
line 13:
E121: Undefined variable: g:OmniCpp_ShowScopeInAbbr
E15: Invalid expression: g:OmniCpp_ShowScopeInAbbr
line 14:
E121: Undefined variable: g:OmniCpp_ShowPrototypeInAbbr
E15: Invalid expression: g:OmniCpp_ShowPrototypeInAbbr
line 15:
E121: Undefined variable: g:OmniCpp_ShowAccess
E15: Invalid expression: g:OmniCpp_ShowAccess
line 43:
E746: Function name does not match script file name: omni#cpp#complete#Init
line 565:
E746: Function name does not match script file name: omni#cpp#complete#Main
Error detected while processing /home/***/.vim/plugin/cpp.vim:
Решил их по очереди установить и опробовать. Первый по алфавиту BufExplorer. Вставил его в нужное место (~/,vim/plugin), запускаю runvim (версия 7.1 при старте, bufexplorer написанона работает с 7.0 и выше). Читаю доку к плагину.
USAGE *bufexplorer-usage*
To start exploring in the current window, use: >
\be or :BufExplorer
To start exploring in a newly split window, use: >
\bs or :SBufExplorer
To start exploring in a newly (forced) vertical split window, use: >
\bv or :VSBufExplorer
Попробовал все команды - ни одну vim говорит не знаю. Команды \be - и другие начинающие со обратного слеша, он не дает ввести.
В чем проблема, как решить ?
- sarutobi
- Сообщения: 676
- Статус: Добрость и скромнота
- ОС: Debian 5, FreeBSD 6.2/8.0
- Контактная информация:
Re: Тонкая настройка vim
В запущенном vim
выполните :version и убедитесь что запущенный вим версии 7.0 или 7.1 - в младших версиях omnicomplete отсутствует
выполните :helptags /home/user/.vim/doc - если плагины устанавливались правильно, то после этого можно смотреть справку через :help <команда>
поищите в /home/user/.vimrc фразу leader - вполне возможно что значение "/" переопределено (let mapleader="new mapleader")
не так давно elide выкладывал свой .vimrc. Посмотрите в него - там много интересного
выполните :version и убедитесь что запущенный вим версии 7.0 или 7.1 - в младших версиях omnicomplete отсутствует
выполните :helptags /home/user/.vim/doc - если плагины устанавливались правильно, то после этого можно смотреть справку через :help <команда>
поищите в /home/user/.vimrc фразу leader - вполне возможно что значение "/" переопределено (let mapleader="new mapleader")
не так давно elide выкладывал свой .vimrc. Посмотрите в него - там много интересного
Fire and water, earth and sky - mistery surrounds us, legends never die!
Re: Тонкая настройка vim
А не подскажет кто, как можно отступ "декоративный" сделать слева от текста...ну как полоса нумерации линий, только без этой нумераци.
А в полноэкранном режиме не совсем удобно работать?
Перекрасить цифры нумерации в цвет фона не предлагать
А в полноэкранном режиме не совсем удобно работать?
Перекрасить цифры нумерации в цвет фона не предлагать
- sarutobi
- Сообщения: 676
- Статус: Добрость и скромнота
- ОС: Debian 5, FreeBSD 6.2/8.0
- Контактная информация:
Re: Тонкая настройка vim
попробуй
set foldcolumn=2
set foldcolumn=2
Fire and water, earth and sky - mistery surrounds us, legends never die!
Re: Тонкая настройка vim
sarutobi, ооо!
Большое спасибо!
Большое спасибо!
Re: Тонкая настройка vim
Поставил плагин tSkeleton, написал шаблоны. Только одно не нравится: есть, например, шаблон
и каждый раз, с различной длиной имени файла, звездочка справа съезжает неизвестно куда - приходится вручную поправлять. Подскажите, как сделать длину <+FILE NAME+> фиксированной (т.е. при необходимости дополняющейся пробелами)?
Код: Выделить всё
/********************************************************************
* <+FILE NAME+> *
...
и каждый раз, с различной длиной имени файла, звездочка справа съезжает неизвестно куда - приходится вручную поправлять. Подскажите, как сделать длину <+FILE NAME+> фиксированной (т.е. при необходимости дополняющейся пробелами)?
Re: Тонкая настройка vim
Можно ли как-то заставить работать дополнение слов по Ctrl-n, Ctrl-p в utf8? langmap ведь не работает. А переключаться каждый раз на английский при редактировании русских текстов грустно.
Re: Тонкая настройка vim
Вообще то хоткеи в insert mode работают и без langmap'а.
Re: Тонкая настройка vim
>Вообще то хоткеи в insert mode работают и без langmap'а.
В gvim почему-то не работает Ctrl-n, Ctrl-p, а вставляются русские буквы т и з. Это как-то можно побороть? Или это глюк GTK?
В gvim почему-то не работает Ctrl-n, Ctrl-p, а вставляются русские буквы т и з. Это как-то можно побороть? Или это глюк GTK?
Re: Тонкая настройка vim
Допилил наконец-то свой vim. Щас буду делиться находками
set title - Показывать заголовок в терминале
set autoread - Если файл изменился, автоматически обновить буфер
Если вам мешают рядом с файлами file.swp и file~ (т.е. бэкапы всякие), можно сделать что б они сохранялись в одной директории:
set backupdir=~/.vim/tmp,/tmp
set directory=~/.vim/tmp,/tmp
Я заставил работать русскую раскладку в utf-8 вот этим (переключать надо ctrl+shift-6)
set keymap=russian-jcukenwin
set iminsert=0
set imsearch=-1
Что б при запуске не писалось про детей уганды можно сделать так:
set shortmess+=I (я вобще сделал shortmess=tToOI)
Вот мой statusline (в дополнение к стандартному показывает кодировку и время последнего изменения файла):
set statusline=%t\ %y%m%r[%{&fileencoding}]%<[%{strftime(\"%d.%m.%y\",getftime(expand(\"%:p\")))}]%k%=%-14.(%l,%c%V%)\ %P
Что б убрать строчки "-----" в фолдингах и "|" в вертикальных разделителях окон:
set fillchars=vert:\ ,fold:\ (в конце должен быть пробел)
Закрывать фолдинги автоматически (мне показалось очень удобно)
set foldclose=all
Это для режима list
set listchars+=tab:>-,trail:-,extends:>,precedes:<,nbsp:%
Для нормальной работы backspace в режиме вставки:
set backspace=indent,eol,start
y, d, c и т.д. без указания регистра используют иксовый clipboard
set clipboard+=unnamed
Клавишу <f1> лучше занять под что-то полезное:
set pastetoggle=<F1>
Тоже неплохая фича для блочного выделения (ctrl-v) (не знаю как написать, смотрите сами )
set virtualedit=block
Если ваш терминал поддерживает 256 цветов (вроде все новые версии на данный момент), лучше это поставить:
set t_Co=256
А так же поставить colorscheme которая это поддерживает, например desert256
Консольные менюхи для выбора кодировки и перевода строки:
menu Encoding.KOI8-R :edit ++enc=koi8-r<CR>
menu Encoding.Windows-1251 :edit ++enc=cp1251<CR>
menu Encoding.IBM-866 :edit ++enc=ibm866<CR>
menu Encoding.UTF-8 :edit ++enc=utf-8<CR>
menu EOLformat.Unix :set fileformat=unix<CR>
menu EOLformat.DOS :set fileformat=dos<CR>
menu EOLformat.Mac :set fileformat=mac<CR>
Вызвать менюхи по f8
map <S-F8> :emenu Encoding.<C-Z>
map <C-F8> :emenu EOLformat.<C-Z>
Переназначить клавишу Y на более логичное действие (moolenaar сам это советует)
map Y y$
Полезно если надо один раз скопировать и много раз заменить выделение (иначе надо копировать в именованый регистр)
vnoremap p "_dP
Что б не тянутся к esc в режиме вставки (мне кажется самое удобное)
imap jj <Esc>
Пробел всё равно работает как клавиша l, пусть открывает фолдинги
nmap <Space> zo
Q - для режима Ex, который практически никогда не используется, пусть закрывает фолдинги
nmap Q zc
Удобный переход по окнам:
map <C-H> <C-W>h
map <C-J> <C-W>j
map <C-K> <C-W>k
map <C-L> <C-W>l
Удобные функции для мапингов которые должны работать во всех режимах:
function! Map_ex_cmd(key, cmd)
execute "nmap ".a:key." " . ":".a:cmd."<CR>"
execute "cmap ".a:key." " . "<C-C>:".a:cmd."<CR>"
execute "imap ".a:key." " . "<C-O>:".a:cmd."<CR>"
execute "vmap ".a:key." " . "<Esc>:".a:cmd."<CR>gv"
endfunction
function! Toggle_option(key, opt)
call Map_ex_cmd(a:key, "set ".a:opt."! ".a:opt."?")
endfunction
Использовать так:
call Toggle_option("<S-F11>", "list")
call Toggle_option("<C-F11><C-F11>", "wrap")
call Toggle_option("<C-S-F11>", "spell")
call Toggle_option("<C-F11><F11>", "cursorcolumn")
call Map_ex_cmd("<F2>", "write")
call Map_ex_cmd("<F10>", "qall")
call Map_ex_cmd("<S-F10>", "qall!")
call Map_ex_cmd("<F11>", "nohlsearch")
В режиме вставки подсвечивать текущую строку и сделать statusline темно-красным
autocmd InsertEnter * set cursorline
autocmd InsertEnter * highlight StatusLine ctermbg=52
autocmd InsertLeave * highlight StatusLine ctermbg=236 - заменить на нормальный цвет statusline (посмотреть можно с помощью :hi StatusLine)
autocmd InsertLeave * set nocursorline
При нажатии q: подсвечивать statusline темно-зеленым
autocmd CmdwinEnter * highlight StatusLine ctermbg=22
autocmd CmdwinLeave * highlight StatusLine ctermbg=236
При создании нового заголовочного файла C\C++ вставлять следующее:
#ifndef HEADER_FILE_NAME_H
#define HEADER_FILE_NAME_H
тут курсор
#endif
function! NewHFile()
let filename=substitute(toupper(expand("%:t")), '[^A-Z]', '_', 'g')
execute "normal i"."#ifndef ".filename."\<cr>"."#define ".filename."\<cr>\<cr>\<cr>\<cr>"."#endif"."\<esc>0kk"
set nomodified
endfunction
autocmd BufNewFile *.h,*.hpp,*.H,*.hh call NewHFile()
*.h распознавать как файл С, для С++ надо использовать .hh, .H, или .hpp
autocmd BufNewFile *.h set filetype=c
В буфере справки отключать номера строк
autocmd FileType help setlocal nonumber
Позже напишу про плагины
PS Скриншот на лоре: http://www.linux.org.ru/view-message.jsp?m...che=-1464923429
PPS Мой vimrc: http://hhyperr.narod.ru/vimrc.html
set title - Показывать заголовок в терминале
set autoread - Если файл изменился, автоматически обновить буфер
Если вам мешают рядом с файлами file.swp и file~ (т.е. бэкапы всякие), можно сделать что б они сохранялись в одной директории:
set backupdir=~/.vim/tmp,/tmp
set directory=~/.vim/tmp,/tmp
Я заставил работать русскую раскладку в utf-8 вот этим (переключать надо ctrl+shift-6)
set keymap=russian-jcukenwin
set iminsert=0
set imsearch=-1
Что б при запуске не писалось про детей уганды можно сделать так:
set shortmess+=I (я вобще сделал shortmess=tToOI)
Вот мой statusline (в дополнение к стандартному показывает кодировку и время последнего изменения файла):
set statusline=%t\ %y%m%r[%{&fileencoding}]%<[%{strftime(\"%d.%m.%y\",getftime(expand(\"%:p\")))}]%k%=%-14.(%l,%c%V%)\ %P
Что б убрать строчки "-----" в фолдингах и "|" в вертикальных разделителях окон:
set fillchars=vert:\ ,fold:\ (в конце должен быть пробел)
Закрывать фолдинги автоматически (мне показалось очень удобно)
set foldclose=all
Это для режима list
set listchars+=tab:>-,trail:-,extends:>,precedes:<,nbsp:%
Для нормальной работы backspace в режиме вставки:
set backspace=indent,eol,start
y, d, c и т.д. без указания регистра используют иксовый clipboard
set clipboard+=unnamed
Клавишу <f1> лучше занять под что-то полезное:
set pastetoggle=<F1>
Тоже неплохая фича для блочного выделения (ctrl-v) (не знаю как написать, смотрите сами )
set virtualedit=block
Если ваш терминал поддерживает 256 цветов (вроде все новые версии на данный момент), лучше это поставить:
set t_Co=256
А так же поставить colorscheme которая это поддерживает, например desert256
Консольные менюхи для выбора кодировки и перевода строки:
menu Encoding.KOI8-R :edit ++enc=koi8-r<CR>
menu Encoding.Windows-1251 :edit ++enc=cp1251<CR>
menu Encoding.IBM-866 :edit ++enc=ibm866<CR>
menu Encoding.UTF-8 :edit ++enc=utf-8<CR>
menu EOLformat.Unix :set fileformat=unix<CR>
menu EOLformat.DOS :set fileformat=dos<CR>
menu EOLformat.Mac :set fileformat=mac<CR>
Вызвать менюхи по f8
map <S-F8> :emenu Encoding.<C-Z>
map <C-F8> :emenu EOLformat.<C-Z>
Переназначить клавишу Y на более логичное действие (moolenaar сам это советует)
map Y y$
Полезно если надо один раз скопировать и много раз заменить выделение (иначе надо копировать в именованый регистр)
vnoremap p "_dP
Что б не тянутся к esc в режиме вставки (мне кажется самое удобное)
imap jj <Esc>
Пробел всё равно работает как клавиша l, пусть открывает фолдинги
nmap <Space> zo
Q - для режима Ex, который практически никогда не используется, пусть закрывает фолдинги
nmap Q zc
Удобный переход по окнам:
map <C-H> <C-W>h
map <C-J> <C-W>j
map <C-K> <C-W>k
map <C-L> <C-W>l
Удобные функции для мапингов которые должны работать во всех режимах:
function! Map_ex_cmd(key, cmd)
execute "nmap ".a:key." " . ":".a:cmd."<CR>"
execute "cmap ".a:key." " . "<C-C>:".a:cmd."<CR>"
execute "imap ".a:key." " . "<C-O>:".a:cmd."<CR>"
execute "vmap ".a:key." " . "<Esc>:".a:cmd."<CR>gv"
endfunction
function! Toggle_option(key, opt)
call Map_ex_cmd(a:key, "set ".a:opt."! ".a:opt."?")
endfunction
Использовать так:
call Toggle_option("<S-F11>", "list")
call Toggle_option("<C-F11><C-F11>", "wrap")
call Toggle_option("<C-S-F11>", "spell")
call Toggle_option("<C-F11><F11>", "cursorcolumn")
call Map_ex_cmd("<F2>", "write")
call Map_ex_cmd("<F10>", "qall")
call Map_ex_cmd("<S-F10>", "qall!")
call Map_ex_cmd("<F11>", "nohlsearch")
В режиме вставки подсвечивать текущую строку и сделать statusline темно-красным
autocmd InsertEnter * set cursorline
autocmd InsertEnter * highlight StatusLine ctermbg=52
autocmd InsertLeave * highlight StatusLine ctermbg=236 - заменить на нормальный цвет statusline (посмотреть можно с помощью :hi StatusLine)
autocmd InsertLeave * set nocursorline
При нажатии q: подсвечивать statusline темно-зеленым
autocmd CmdwinEnter * highlight StatusLine ctermbg=22
autocmd CmdwinLeave * highlight StatusLine ctermbg=236
При создании нового заголовочного файла C\C++ вставлять следующее:
#ifndef HEADER_FILE_NAME_H
#define HEADER_FILE_NAME_H
тут курсор
#endif
function! NewHFile()
let filename=substitute(toupper(expand("%:t")), '[^A-Z]', '_', 'g')
execute "normal i"."#ifndef ".filename."\<cr>"."#define ".filename."\<cr>\<cr>\<cr>\<cr>"."#endif"."\<esc>0kk"
set nomodified
endfunction
autocmd BufNewFile *.h,*.hpp,*.H,*.hh call NewHFile()
*.h распознавать как файл С, для С++ надо использовать .hh, .H, или .hpp
autocmd BufNewFile *.h set filetype=c
В буфере справки отключать номера строк
autocmd FileType help setlocal nonumber
Позже напишу про плагины
PS Скриншот на лоре: http://www.linux.org.ru/view-message.jsp?m...che=-1464923429
PPS Мой vimrc: http://hhyperr.narod.ru/vimrc.html
Re: Тонкая настройка vim
Немного доделал тему desert256
colorscheme desert256
Подсветка текущей строки в режиме вставки (см. пред. пост) и текущего столбца (если включено set cursorcolumn)
highlight CursorColumn ctermbg=233
highlight CursorLine cterm=none ctermbg=233
highlight Folded ctermbg=234 ctermfg=136 - Фолдинги
highlight LineNr ctermfg=238 - Номера строк
highlight MatchParen ctermbg=240 - Подсветка парной скобки
highlight NonText ctermbg=232 ctermfg=235 - Всякие "~" внизу экрана
highlight Pmenu ctermbg=52 - Меню автодополнения
highlight StatusLine cterm=none ctermbg=236 - statusline текущего окна
highlight StatusLineNC cterm=none ctermbg=236 ctermfg=243 - остальных окон
Строка для табов:
highlight TabLine cterm=none ctermbg=236 ctermfg=145
highlight TabLineFill ctermfg=236
highlight TabLineSel cterm=none ctermbg=240 ctermfg=253
Вертикальный разделитель окон:
highlight VertSplit ctermfg=236
colorscheme desert256
Подсветка текущей строки в режиме вставки (см. пред. пост) и текущего столбца (если включено set cursorcolumn)
highlight CursorColumn ctermbg=233
highlight CursorLine cterm=none ctermbg=233
highlight Folded ctermbg=234 ctermfg=136 - Фолдинги
highlight LineNr ctermfg=238 - Номера строк
highlight MatchParen ctermbg=240 - Подсветка парной скобки
highlight NonText ctermbg=232 ctermfg=235 - Всякие "~" внизу экрана
highlight Pmenu ctermbg=52 - Меню автодополнения
highlight StatusLine cterm=none ctermbg=236 - statusline текущего окна
highlight StatusLineNC cterm=none ctermbg=236 ctermfg=243 - остальных окон
Строка для табов:
highlight TabLine cterm=none ctermbg=236 ctermfg=145
highlight TabLineFill ctermfg=236
highlight TabLineSel cterm=none ctermbg=240 ctermfg=253
Вертикальный разделитель окон:
highlight VertSplit ctermfg=236
Re: Тонкая настройка vim
Таки тоже себе поставил
autocmd InsertEnter * set cursorline
autocmd InsertLeave * set nocursorline
autocmd InsertEnter * set cursorline
autocmd InsertLeave * set nocursorline