2017-04-18 166 views
1

我在.vimrc文件中有一个部分,它将终端的标题设置为用vim打开的文件的名称。但是,当使用:edit从vim内的一个文件转到另一个文件时,由于它保持不变,所以这会中断。我认为这是因为,默认情况下,.vimrc文件仅在启动vim时运行。在任何之后重新加载.vimrc:编辑命令

有没有办法让vim“监视”:edit,:e和其他任何命令,然后运行:so $MYVIMRC,它会重新加载.vimrc?

另外,是否有一些内置功能,将终端标题设置为我不知何故忽略的文件名?


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

回答

5

这做这件工作

autocmd BufEnter * :so $MYVIMRC 

更新

至于建议的DOKTOR,这是BETT呃在一个函数中做到这一点,只需要在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() 
+2

你应该把逻辑函数,调用该函数在自动命令不重装整个的vimrc –

+0

好一点。已更新答案 – datavoredan

相关问题