Можно ли применить конфигурации vim без перезапуска?
Я хочу изменить .vimrc
файл из Vim и применить их без перезагрузки Vim.
5 ответов:
да, просто использовать
:so %
команда при редактировании вашего .vimrc.Если вы хотите, чтобы vim автоматически перезагрузил вашу конфигурацию, вы должны добавить следующие команды:
augroup myvimrchooks au! autocmd bufwritepost .vimrc source ~/.vimrc augroup END
группировка autocommand здесь, чтобы избежать "экспоненциальной" перезагрузки, если вы сохраните несколько раз свою конфигурацию.
вот более кросс-платформенная совместимая версия, если вы работаете на Mac / Windows / Linux и
gvimrc
:augroup myvimrc au! au BufWritePost .vimrc,_vimrc,vimrc,.gvimrc,_gvimrc,gvimrc so $MYVIMRC | if has('gui_running') | so $MYGVIMRC | endif augroup END
autocmd наблюдает за всем потенциалом
*vimrc
файлы и когда один изменяет, он перезагружаетvimrc
файл, за которым следуетgvimrc
если графический интерфейс запущен.
" Quickly edit/reload this configuration file nnoremap gev :e $MYVIMRC<CR> nnoremap gsv :so $MYVIMRC<CR>
до автоматически перезагрузите после сохранения, добавьте следующее в свой
$MYVIMRC
:if has ('autocmd') " Remain compatible with earlier versions augroup vimrc " Source vim configuration upon save autocmd! BufWritePost $MYVIMRC source % | echom "Reloaded " . $MYVIMRC | redraw autocmd! BufWritePost $MYGVIMRC if has('gui_running') | so % | echom "Reloaded " . $MYGVIMRC | endif | redraw augroup END endif " has autocmd
и затем в последний раз введите:
:so %
в следующий раз, когда вы сохраните ваш
vimrc
, он будет автоматически перезагружен.характеристики:
- сообщает пользователю, что произошло (также вход в
:messages
)- обрабатывает различные имена для конфигурации файлы
- гарантирует, что он будет соответствовать только фактическому файлу конфигурации (игнорирует копии в других каталогах или
fugitive://
diff)- не будет генерировать ошибку при использовании
vim-tiny
конечно, автоматическая перезагрузка произойдет только в том случае, если вы измените свой
vimrc
в vim.