我的.vimrc文件中有一个部分,它将终端的标题设置为使用vim打开的文件的名称。但是,当使用:edit
从vim中的一个文件转到下一个文件时会出现故障,因为它保持不变。我认为这是因为,默认情况下,.vimrc文件仅在启动vim时运行。
有没有办法让vim“监视”:edit,:e和任何其他命令,然后运行:so $MYVIMRC
,重新加载.vimrc? < / p>
或者,是否有一些内置功能将终端标题设置为我忽略的文件名?
.vimrc中提到的部分
" Apply filename to terminal session title
"" Doesn't work when changing file using :edit
let path_list = reverse(split(expand("%:p"),"/"))
if len(path_list) > 0
let &titlestring = path_list[0]
if &term == "screen"
set t_ts=^[k
set t_fs=^[\
endif
if &term == "screen" || &term == "xterm"
set title
endif
endif
答案 0 :(得分:5)
这是完成这项工作
autocmd BufEnter * :so $MYVIMRC
<强>更新强>
根据Doktor的建议,最好在一个函数中执行此操作,并在BufEnter上调用它。这是如何运作的。
function SetTitle()
let path_list = reverse(split(expand("%:p"),"/"))
if len(path_list) > 0
let &titlestring = path_list[1] . "/" . path_list[0]
if &term == "screen"
set t_ts=^[k
set t_fs=^[\
endif
if &term == "screen" || &term == "xterm"
set title
endif
endif
endfunction
autocmd BufEnter * :call SetTitle()