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


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


493
2018-04-17 14:18


Источник




Ответы:


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

:so %

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

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

:so $MYVIMRC

609
2018-04-17 14:24



Посмотри на stackoverflow.com/questions/803464/... - mrucci
а также :so ~/.vimrc должен работать тоже на unix - Yab
: so ~ / _vimrc работает с окнами. Конечно, я держу свой _vimrc в моем домашнем каталоге Windows, иначе это не сработает. Чтобы узнать, что Vim рассматривает ваш домашний каталог, используйте :echo expand("~"), - Daniel Miladinov
Обратите внимание, что если сопоставления клавиатуры уже были на месте, они не будут удалены, даже если они будут удалены из нового vimrc - Phani


Еще лучше, вы настраиваете 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, так что он совместим с графическим интерфейсом Vim, Windows Vim и т. Д.


76
2018-04-28 09:32



Насколько совершенен этот метод? - Alexej Magura


Отображения ключей

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


8
2017-09-02 14:12





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

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

4
2018-06-17 10:36