2017-04-18 18 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

相關問題