86

Меня беспокоит, когда я что-то записываю в .vimrc и мне нужно сначала закрыть это и открыть, чтобы применить мои изменения. Есть ли способ перезагрузить .vimrc в Vim, не закрывая его?

Например, я добавил set nu в ~/.vimrc и хочу, чтобы номера строк отображались для всех моих окон и буферов.

4 ответа4

120

:source ~/.vimrc

Запустите это изнутри vim, это применит ваш .vimrc

вперемежку

:source $MYVIMRC

18

Вот один для потомков. Добавьте следующее в ваш .vimrc:

map <leader>vimrc :tabe ~/.vim/.vimrc<cr>
autocmd bufwritepost .vimrc source $MYVIMRC

Первая строка означает, что вы можете открыть свой vimrc из любого буфера vim, напечатав ваш лидер, а затем написав «vimrc». Например, мой лидер настроен на запятую, поэтому, если я нахожусь в режиме редактирования и набираю «, vimrc», он открывает мой vimrc в новой вкладке.

Вторая строка автоматически отправляет изменения в ваш vimrc, когда вы сохраняете и закрываете его. Это магия.

12

:so %

если в данный момент редактируем .vimrc

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

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