我找不到一种方法来让Vim将所有空格显示为一个字符。我找到的只是制表符、尾随空格等。


当前回答

:se list
:se nolist

:se足够了,不需要:set。

其他回答

:se list
:se nolist

:se足够了,不需要:set。

把这个添加到我的.vimrc中对我很有用。只要确保你没有其他冲突。。

autocmd VimEnter * :syn match space /\s/
autocmd VimEnter * :hi space ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black

我没有从现有的答案中找到我想要的。下面的代码将突出显示所有的尾部空格亮红色

highlight ExtraWhitespace ctermbg=red guibg=red
match ExtraWhitespace /\s\+$/
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
autocmd BufWinLeave * call clearmatches()

如果用空格表示“”字符,我的建议就是搜索/替换。正如其他人所暗示的,set list将非打印字符更改为以列表字符配置的可见字符。

要将空格显式显示为其他字符,应使用类似于以下内容的方法:

:%s//█/克

然后只需撤消更改即可再次返回。

(以获得█ 我按了这个精确的键顺序::%s//CTRL-KFB/g)

上面的所有答案都试图使vim中的空间可见。如果你真的坚持将可见空间作为点,还有另一种方法。。。

如果无法在vim中完成,请完全更改字体。我复制了Ubuntu One Mono字体,并使用FontForge进行了编辑。记住要更改字体的全名、字体族、首选字体族、兼容字体(在FontFoge中,它位于字体信息中的TTF名称下),以便将其作为单独的字体。只需编辑空格字符,使其中间有一个点,然后将字体保存到~/.fonts现在你可以把它用于你的gvim或整个终端。。。我复制了“!”字符,删除了行并将点移到中间。花了5分钟多一点。。。

注意:更改空格字符(0x20)会导致在整个vim屏幕上出现点的不便。。。(但它将分隔空格和制表符…)