Можете ли вы отредактировать файл .vimrc и перезагрузить его, не перезапуская Vim?
4 ответа
Если вы редактируете его, вы можете перезагрузить его:
:so %
% обозначает текущее имя файла (см . :h current-file) и :so - сокращение от :source , которое считывает содержимое указанного файла и обрабатывает его как код Vim.
В общем, чтобы перезагрузить текущий активный .vimrc, используйте следующее (см. Daily Vim):
:so $MYVIMRC
Более того, вы настраиваете Vim для отслеживания изменений в вашем .vimrc и автоматически перезагружаете конфигурацию.
augroup myvimrc
au!
au BufWritePost .vimrc,_vimrc,vimrc,.gvimrc,_gvimrc,gvimrc so $MYVIMRC | if has('gui_running') | so $MYGVIMRC | endif
augroup END
Источник: этот ответ на SO
Примечание: этот конкретный метод отслеживает множество вариаций имен файлов конфигурации Vim, так что он совместим с GUI Vim, Windows Vim и т.д.
Сопоставления клавиш
" 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.
Альтернатива запоминанию /:so $MYVIMRC - это эти отображения. Это позволяет быстро редактировать vimrc (ev) или исходный vimrc (sv).
" Quickly open/reload vim
nnoremap <leader>ev :split $MYVIMRC<CR>
nnoremap <leader>sv :source $MYVIMRC<CR>
