.vimrc
文件并重新加载它而不必重新启动Vim吗?#1 楼
如果您正在编辑它,则可以使用以下命令重新加载它::so %
%
代表当前文件名(请参阅:h current-file
),而:so
是:source
的缩写,其读为指定文件的内容并将其视为Vim代码。通常,要重新加载当前活动的.vimrc,请使用以下命令(请参阅Daily Vim):
:so $MYVIMRC
#2 楼
更好的是,将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配置文件名的多种变化,以便与GUI Vim,Windows Vim等兼容。
评论
这种方法的表现如何?
– Alexej Magura
17年9月19日在18:37
我发现使用这种命令有时会使我的nvim挂起几秒钟或更长时间。
– jdhao
18-09-29在8:29
#3 楼
键映射" 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
不会产生错误当然,仅当您在vim中编辑
vimrc
时,才会发生自动重装。#4 楼
这些映射是记住/键入:so $MYVIMRC
的一种替代方法。它使您可以快速编辑vimrc(ev
)或源vimrc(sv
)。" Quickly open/reload vim
nnoremap <leader>ev :split $MYVIMRC<CR>
nnoremap <leader>sv :source $MYVIMRC<CR>
#5 楼
我使用的ReloadVimrcFunction版本略有不同。为了避免两次加载该函数,我们设置了以下内容:
" Reloads vimrc after saving it but keep cursor position
if !exists('*ReloadVimrcFunction')
function! ReloadVimrcFunction()
let save_cursor = getcurpos()
source $MYVIMRC | windo redraw
call setpos('.', save_cursor)
echom "Reloaded $MYVIMRC"
endfunction
endif
noremap <silent> <Leader>v :drop $MYVIMRC<cr>
command! -nargs=0 ReloadVimrc :call ReloadVimrcFunction()
nnoremap <silent> <C-s> :call ReloadVimrcFunction()<CR>
我们还保存了光标位置,因为这样会麻烦每次重新加载
$MYVIMRC
时,光标的位置都会发生变化。每次我保存$ MYVIMRC时,我都有一个augroup来触发此功能。
if !exists('*ReloadVimrcFunction')
评论
看看stackoverflow.com/questions/803464/…
–mrucci
2010-4-17的14:27
和:so〜/ .vimrc在Unix上也应该工作
– Yab
2011年5月8日在18:18
:so〜/ _vimrc在Windows上工作。当然,我将_vimrc保留在Windows主目录中,否则将无法正常工作。要查看Vim认为您的主目录是什么,请使用:echo expand(“〜”)。
–丹尼尔·米拉迪诺夫(Daniel Miladinov)
2012年11月30日14:10
请注意,如果已经存在键盘映射,那么即使将其从新的vimrc中删除,也不会删除它们。
– Phani
2014年10月2日,下午6:58
或者:so〜/ .vim / gvimrc或放在任何地方
– NeilG
19年8月20日在1:47