如何制作vim节目空间?

Mar*_*oma 14 vim

我正在尝试从gedit切换到vim.我尝试使vim看起来类似于gedit:

gedit中

特别是,我想用点表示空格.

我目前有:

在此输入图像描述

有一些差异,但它看起来非常相似(这是我目前的.vimrc文件).但我没有得到那些空格点.

如何制作vim节目空间?

我找到了一些答案(比如这个)似乎建议用特殊的可见字符替换空格然后将其替换回来.我不想每次都这样做.我希望能够打开vim并查看这些空间.

小智 16

我知道这是一个古老的话题,但它有可能:

set lcs+=space:·
Run Code Online (Sandbox Code Playgroud)

适用于我的Gvim 7.4.

  • 在Ubuntu上为Vi工作.谢谢!上面的@martin应该更新为答案. (3认同)
  • 这个解决方案和“设置列表”对我来说非常有效。 (2认同)

m59*_*m59 8

虽然你不能完全按照自己的意愿行事,但如果你的推理与我的相似,那么你想看到那些空格,因为它有助于验证正确的缩进(我在那里有2个空格,还是3?).对于Vim> = 7.3,您可以使用indentLine插件在每个缩进处添加标记.这很棒.

如果您正在使用病原体,请安装:

cd ~/.vim/bundle
git clone https://github.com/Yggdroot/indentLine
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


ern*_*nix 6

undercurl做这项工作可能是值得的.

hi WhiteSpaces gui=undercurl guifg=LightGray
match WhiteSpaces / \+/
Run Code Online (Sandbox Code Playgroud)

或者你可以把它放在你的 .vimrc

autocmd ColorScheme * highlight WhiteSpaces gui=undercurl guifg=LightGray | match WhiteSpaces / \+/ 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


J-L*_*J-L 5

有时候我绝对需要查看哪些空格是制表符,哪些是真正的空格字符,以及何时空格出现在行尾。

使用时vim,我使用:

:set list
Run Code Online (Sandbox Code Playgroud)

(我可以用关闭:set nolist

使用:set list,文字空间显示为空格,制表符显示为^I,行尾显示为亮粉红色$。(因此,$您会在粉红色的左侧看到的任何空白都是真正的空格字符,而其右侧的空白只是行尾和右侧右侧之间的“空白”编辑。)

很难看,但是效果很好。

我不建议您一直使用它-只是在关键时候要知道存在文字空间和文字制表符的时候。


Ing*_*kat 3

Vim 一直提供'listchars'在关键位置(即行尾尾随)显示 Tab 与 Space 以及空格字符的选项。在以前的版本中(编写问题时),它没有提供对所有空格的修改:空白方块是空格、句点。不过,其他答案提供了一些解决方法。

在当前的 Vim 版本中,有许多与空格相关的选项;cp。:help 'listchars'了解详情。

您可以得到截图中看到的效果;将该命令放入您的~/.vimrc

:set list listchars+=space:. listchars-=eol:$
Run Code Online (Sandbox Code Playgroud)