513

Можете ли вы отредактировать файл .vimrc и перезагрузить его, не перезапуская Vim?

4 ответа4

631

Если вы редактируете его, вы можете перезагрузить его:

:so %

% обозначает текущее имя файла (см . :h current-file) и :so - сокращение от :source , которое считывает содержимое указанного файла и обрабатывает его как код Vim.

В общем, чтобы перезагрузить текущий активный .vimrc, используйте следующее (см. Daily Vim):

:so $MYVIMRC
76

Более того, вы настраиваете 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 и т.д.

9

Сопоставления клавиш

" 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.

5

Альтернатива запоминанию /:so $MYVIMRC - это эти отображения. Это позволяет быстро редактировать vimrc (ev) или исходный vimrc (sv).

" Quickly open/reload vim
nnoremap <leader>ev :split $MYVIMRC<CR>  
nnoremap <leader>sv :source $MYVIMRC<CR>     

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .