Подборка практических приемов, паттернов и шаблонов кода на Vimscript для разработки плагинов и настройки vimrc.
Привязка клавиш и пользовательские команды
" Привязать пользовательскую команду к локальной функции скрипта
command! YoFunctionHere call s:YoFunctionHere()
" Бесшумное назначение клавиши в нормальном режиме
nnoremap <silent> x :call <SID>FunctionHere()<CR>
function! s:FunctionHere()
" Реализация
endfunction
Вызов функций в режиме вставки (Insert Mode)
" Использовать регистр выражений (=) для вставки результата
inoremap X <C-R>=script#myfunction()<CR>
inoremap <F2> <C-R>=MyVimFunc()?'':''<CR>
Проверка наличия плагина
if globpath(&rtp, "plugin/commentary.vim") != ""
" Плагин Commentary установлен
endif
Автозагрузка (Autoloading)
" autoload/hello.vim
if exists("g:hello_loaded") | finish | endif
let g:hello_loaded = 1
function! hello#method()
echo "Привет из автоматически загруженной функции!"
endfunction
Вызов hello#method() автоматически загружает и исполняет autoload/hello.vim по требованию.
Разное
Проверка версии
if v:version < 704
echom "Этот плагин требует Vim >= 7.4"
finish
endif