即使没有添加任何标志,我怎样才能让标志栏一直显示?

jor*_*ver 37 vim vimrc

我刚刚为 Vim添加了Git Gutter 插件,它显示了根据git diff. 它使用Sign Column来显示每行旁边的字符。

目前该列出现在保存时,这很不和谐。我希望该列始终显示,即使是空的。

如何使标志栏始终可见?

Ing*_*kat 50

从 Vim 7.4.2201 开始,您可以执行以下操作:

:set signcolumn=yes
Run Code Online (Sandbox Code Playgroud)

CP。:help 'signcolumn'. 对于较旧的 Vim 版本,您必须定义一个虚拟符号并将其放入当前缓冲区:

:sign define dummy
:execute 'sign place 9999 line=1 name=dummy buffer=' . bufnr('')
Run Code Online (Sandbox Code Playgroud)

  • 要使其在您打开的每个新缓冲区中都能正常工作,请同时输入 `autocmd BufEnter * sign define dummy` 和 `autocmd BufEnter * execute 'sign place 9999 line=1 name=dummy buffer='。bufnr('')` 在你的 vimrc 中。 (14认同)
  • @cprn:你说得对;我已将其添加到我的答案中。谢谢! (2认同)

wjv*_*wjv 24

特别是对于 vim-gitgutter,您还可以在您的 中设置以下变量~/.vimrc

let g:gitgutter_sign_column_always = 1
Run Code Online (Sandbox Code Playgroud)

更新

该插件现在将发出警告以删除上述行并改为使用:

set signcolumn="yes"
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一句,对我来说是`set signcolumn=yes` *没有*引号 (8认同)

inn*_*naM 7

虽然定义标志并放置它的小舞蹈工作正常,但对我来说更优雅的替代方案是:

autocmd BufRead,BufNewFile * setlocal signcolumn=yes
Run Code Online (Sandbox Code Playgroud)

如果某些文件类型不应该包含该列:

autocmd FileType tagbar,nerdtree setlocal signcolumn=no
Run Code Online (Sandbox Code Playgroud)