【发布时间】:2013-04-10 11:32:55
【问题描述】:
我正在使用 vim-fugitive 并将%{fugitive#statusline()} 添加到状态行很好地显示了当前的 git 分支。
但是 git 文件状态指示器(例如在 git status 输出中)呢?
例如,当打开的文件未被跟踪、暂存、清理等时,指示器将通过“[?]”、“[M]”、“[C]”或类似的方式将其显示在状态行中。
如何添加这样的指标?
【问题讨论】:
我正在使用 vim-fugitive 并将%{fugitive#statusline()} 添加到状态行很好地显示了当前的 git 分支。
但是 git 文件状态指示器(例如在 git status 输出中)呢?
例如,当打开的文件未被跟踪、暂存、清理等时,指示器将通过“[?]”、“[M]”、“[C]”或类似的方式将其显示在状态行中。
如何添加这样的指标?
【问题讨论】:
你可以试试我的aurum插件,它的单字符状态指示器是%{Powerline#Functions#aurum#GetStatus()}。但请注意,aurum 的目标之一是将 VCS 差异隐藏在插件界面后面,因此有六种状态:添加、未知、修改、删除、删除、忽略、清理:均源自 mercurial;并且没有像“modified in index”这样的状态(它只是“modified”)。
对于除“clean”之外的所有状态,都会显示大写首字母,对于“clean”,则根本不显示任何内容。如果你想改变这个,请使用aurum#status(),Powerline#Functions#aurum#GetStatus() 只是用于电力线的aurum#status() 函数的两行包装器,如果你想改变行为,不需要为包装器创建一个包装器。
【讨论】:
如果当前文件被修改,这将显示+:
system("[[ -n \"$(git status --porcelain " . shellescape(expand("%")) . ")\" ]] && echo -n +")
作为 vim-powerline 段:
【讨论】: