如何将git文件状态添加到vim的状态行?

时间:2012-09-22 14:15:36

标签: git vim

我正在使用vim-fugitive并将%{fugitive#statusline()}添加到状态行,很好地显示当前的git分支。

但是git文件状态指示器怎么样(比如在git status输出中?)

例如,当打开的文件未跟踪,暂存,清理等时,指示器将通过'[?]','[M]','[C]'或类似的东西在状态行中显示它。

如何添加这样的指标?

2 个答案:

答案 0 :(得分:2)

您可以试用我的aurum插件,其中单字符状态指示符为%{Powerline#Functions#aurum#GetStatus()}。但请注意,aurum的目标之一是隐藏插件界面背后的VCS差异,因此有六种状态:添加,未知,修改,删除,删除,忽略,清除:全部源自mercurial;并且没有像“在索引中修改”这样的状态(它只是“修改”)。

对于除“干净”大写的第一个字母之外的所有状态,显示“干净”,根本不显示任何状态。使用aurum#status()如果你想改变它,Powerline#Functions#aurum#GetStatus()只是用于powerline的aurum#status()函数的两行包装器,如果你想要的话,不需要为包装器创建包装器改变行为。

答案 1 :(得分:1)

如果当前文件被修改,这将显示+

system("[[ -n \"$(git status --porcelain " . shellescape(expand("%")) . ")\" ]] && echo -n +")

作为vim-powerline细分:

https://github.com/twe4ked/dotfiles/blob/bd0f98531d3467e041af1b8f17556e0052389735/vim/plugin_config/powerline.vim#L1