Як перезавантажити свій vimrc, не виходячи з Vim?


50

Коли я змінюю свою .vimrc, я зазвичай виходжу з Vim і відкриваю її знову. Чи є простіший спосіб перезавантажити нові .vimrcзміни?

Відповіді:


47

Виконати:

:source $MYVIMRC

всередині Vim, щоб перезавантажити vimrcфайл. Або скорочена версія:

:so $MYVIMRC

як згадується в коментарі kenorb .

Також вам може бути корисно зіставити будь-яку з цих форм на ключ. Наприклад:

nnoremap <Leader>r :source $MYVIMRC<CR>

2
Клавіші швидкого доступу: :so $MYVIMRC.
kenorb

@kenorb: я додав таку можливість; дякую, що згадуєте про це!
Пол Гесслер

:so $m<Tab> ←
позакороткий

3
Збережіть ще два натискання клавіш :so %. %встановлено поточне ім'я файлу буфера, який ви редагуєте, в цьому випадку$MYVIMRC
cbaumhardt

1
На сьогодні найпростіший спосіб зробити це автоматичне завантаження vimrc при збереженні - перевірте інші відповіді.
Том Хейл

20

Якщо ви просто хочете раз у раз перезавантажити файл

:source $MYVIMRC

як написав Павло правильно. Якщо ви часто змінюєте свій vimrc, ви можете додати щось подібне до файлу vimrc:

autocmd BufWritePost .vimrc,_vimrc source $MYVIMRC

Це перезавантажить файл під час його запису (з цього сеансу vim)


1
johannes: Чи потрібно нам редагувати .vimrc через vim, щоб ця команда автоматично джерела файлу?
Сай Маной Кумар Ядлапаті

5
зауважте, що файл vimrc можна також назвати іншими речами: наприклад, vimrc (якщо він знаходиться в ~ / .vim).
user50136

1
@SaiManojKumarYadlapati Так, AS сказав, що це має бути той самий сеанс виступу. Bufwritepost спрацьовує, коли vom робить написання
johannes

Проблеми з цим: (1) не працює .vim/vimrc, (2) створить дублікати autocmds, тому кожне наступне збереження буде повільніше, оскільки файл буде перевантажуватися кілька разів, (3) не поводиться з vim-tiny, який не мають autocmd і все ще є типовим для деяких дистрибутивів Linux. Дивіться мою відповідь, щоб вирішити ці проблеми.
Том Хейл

2
" 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://відмінності)
  • Не вдасться створити помилку при використанні vim-tiny

Звичайно, автоматичне перезавантаження відбудеться лише в тому випадку, якщо ви редагуєте vimrcin vim.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.