2010-04-17 14:18:40 +0000 2010-04-17 14:18:40 +0000
545
545

Как перезагрузить .vimrc файл без перезапуска Vim?

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

Ответы (4)

681
681
681
2010-04-17 14:24:51 +0000

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

:so %

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

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

:so $MYVIMRC
79
79
79
2012-04-28 09:32:28 +0000

Еще лучше, вы настраиваете Vim для просмотра изменений в .vimrc и автоматически перезагружаете конфигурацию.

augroup myvimrc
    au!
    au BufWritePost .vimrc,_vimrc,vimrc,.gvimrc,_gvimrc,gvimrc so $MYVIMRC | if has('gui_running') | so $MYGVIMRC | endif
augroup END

Source: этот ответ на SO

Примечание: этот конкретный метод следит за многими вариациями имен файлов конфигурации Vim, так что он совместим с GUI Vim, Windows Vim, и т.д.

11
11
11
2016-09-02 14:12:06 +0000

Полностью автоматизированное решение

Полностью автоматизированное решение

To автоматически перезагружайте при сохранении, добавьте следующее к вашему $MYVIMRC:

" Quickly edit/reload this configuration file
nnoremap gev :e $MYVIMRC<CR>
nnoremap gsv :so $MYVIMRC<CR>

, а затем в последний раз введите:

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

В следующий раз, когда вы сохраните ваш vimrc, он будет автоматически перезагружен.

Функции:

  • Сообщает пользователю, что произошло (также входит в :messages)
  • Обрабатывает различные имена конфигурационных файлов
  • Обеспечивает соответствие только фактическому конфигурационному файлу (игнорирует копии в других каталогах, или fugitive:// diff)
  • Не генерирует ошибку при использовании vim-tiny

Конечно, автоматическая перезагрузка произойдёт только если вы отредактируете вашу vimrc в vim.

5
5
5
2015-06-17 10:36:59 +0000

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

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

Похожие вопросы

5
6
8
3
12