2014-01-15 68 views

回答

1

首先,定義一個函數是這樣的:

fun! GitTracks(...) 
    let file = a:0 ? a:1 : expand('%') 
    let message = system('git ls-files -- ' . file) 
    let is_tracked = (message =~ '^fatal:') ? 0 : strlen(message) 
    if is_tracked 
    hi StatusLine guibg=blue 
    else 
    hi StatusLine guibg=black 
    endif 
    return is_tracked 
endfun 

這將返回0,如果你不是一個Git倉庫或者如果你的文件沒有被跟蹤。誰知道,有一天你可能想用一個論點來稱呼它。只是踢,我改變狀態線的顏色。 (這需要一段時間來踢,這取決於你的設置爲'updatetime'。你可以從功能刪除它,並使用BufEnter自動命令來檢查的GitTracks()值)。

接下來,決定你要如何表示這你的狀態線。例如,

:set stl+=%{GitTracks()?'tracked':'NOT\ tracked'} 
+0

正是我在找的東西。謝謝!這是我與航空公司做了什麼https://github.com/epeli/vimconfig/commit/dc7fdc6f79b4ddf81e1685c875105d010002f0b4 – Epeli

+0

其實我不得不更新它,以避免渲染gliches https://github.com/epeli/vimconfig/blob/23d97ae6d668b22f3da56a5373744c9f579d117d/的vimrc#L149-L164 – Epeli

0

您幾乎可以肯定地用powerline來做到這一點。這是一個非常可配置的工具,可以在vim中使用,爲您提供強大的狀態行,以及用於強大的提示顯示的bash/zsh。

這裏是我的樣子(股票配置),顯示以下信息:

{正常模式主動} | BR:{當前git分支} | {文件名} vim-powerline-example

我敢肯定就會有一種方式來獲得在那裏當前緩衝的文件狀態......

相關問題