Можно ли применить конфигурации vim без перезапуска? - PullRequest
71 голосов
/ 08 марта 2010

Я хочу отредактировать .vimrc файл из Vim и применить его без перезапуска Vim.

Ответы [ 5 ]

73 голосов
/ 08 марта 2010

Да, просто используйте команду :so % при редактировании .vimrc.

Если вы хотите, чтобы vim автоматически перезагрузил вашу конфигурацию, вы должны добавить следующие команды:

augroup myvimrchooks
    au!
    autocmd bufwritepost .vimrc source ~/.vimrc
augroup END

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

42 голосов
/ 08 марта 2010

Вот более кросс-платформенно-совместимая версия, если вы работаете на 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, если работает графический интерфейс.

32 голосов
/ 08 марта 2010

исходный файл vimrc :source ~/.vimrc

7 голосов
/ 02 сентября 2016
" 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.

1 голос
/ 18 марта 2010

autocmd! bufwritepost _vimrc source%

это автоматически перезагрузит все настройки в файле _vimrc при сохранении

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...