我找不到一种方法来让Vim将所有空格显示为一个字符。我找到的只是制表符、尾随空格等。
当前回答
正如其他人所说,您可以使用
:set list
这将与
:set listchars=...
显示不可见字符。现在,没有一个显式选项可以用来显示空白,但在listchars中,您可以设置一个字符来显示除空白以外的所有内容。例如,我的看起来像这样
:set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<
所以,现在,在你使用
:set list
所有没有明确显示为其他内容的内容实际上都是一个普通的空白。
像往常一样,要了解listchars的工作原理,请使用帮助。它提供了关于可以显示哪些字符(例如尾随空格)以及如何显示的详细信息:
:help listchars
给它添加一个切换可能会很有帮助,这样您可以在编辑过程中轻松看到更改(来源:VIM:set list!作为.virc中的切换):
noremap <F5> :set list!<CR>
inoremap <F5> <C-o>:set list!<CR>
cnoremap <F5> <C-c>:set list!<CR>
其他回答
:match CursorLine /\s\+/
避免了“必须搜索空间才能显示”这一点,但afaict不能配置为对空间进行非隐藏操作。CursorLine可以是任何照明组,在默认主题中它是一个普通下划线。
要突出显示空间,只需搜索:
/<空间>
笔记:<space>表示只需键入空格字符。使用:set hlsearch启用搜索结果的突出显示
突出显示空格和制表符:/[<space><tab>]
删除高光的快速方法是搜索其他任何内容:/美国国防部
(只需键入任意随机字符的短列表)
如果用空格表示“”字符,我的建议就是搜索/替换。正如其他人所暗示的,set list将非打印字符更改为以列表字符配置的可见字符。
要将空格显式显示为其他字符,应使用类似于以下内容的方法:
:%s//█/克
然后只需撤消更改即可再次返回。
(以获得█ 我按了这个精确的键顺序::%s//CTRL-KFB/g)
:set列表将以字符形式显示所有空白。除了一个空间之外,其他所有的东西看起来都会不同于它的正常状态,这意味着如果你仍然看到一个普通的旧空间,那真的是一个普通旧空间。:)
:将列表设置为启用。
:将nolist设置为禁用。