我找不到一种方法来让Vim将所有空格显示为一个字符。我找到的只是制表符、尾随空格等。
当前回答
:match CursorLine /\s\+/
避免了“必须搜索空间才能显示”这一点,但afaict不能配置为对空间进行非隐藏操作。CursorLine可以是任何照明组,在默认主题中它是一个普通下划线。
其他回答
:将列表设置为启用。
:将nolist设置为禁用。
我喜欢使用特殊字符来显示空白,这样更清晰。即使是切换地图也是快速检查的关键功能。
您可以在一个自2004年以来未更新的旧vim脚本中找到这些功能:
vim脚本/cream-showinvisibles@vim.org
多亏了项目vim脚本和vundle,你可以重新使用这个插件
vim脚本/cream-showinvisibles@github
更好的是,我的两分钱是添加一个可配置的快捷方式(而不是预定义的F4)
所以把这个添加到~/.vimrc中
Plugin 'albfan/cream-invisibles'
let g:creamInvisibleShortCut = "<F5>" "for my F4 goto next error
在vim上安装插件
:PluginInstall
就这样
你可以使用
:set list
真正看到一条线的结构。您将显式地看到制表符和换行符。当你看到空白时,它真的是空白。
下面的代码基于Christian Brabandt的答案,似乎可以按照OP的要求执行:
function! Whitespace()
if !exists('b:ws')
highlight Conceal ctermbg=NONE ctermfg=240 cterm=NONE guibg=NONE guifg=#585858 gui=NONE
highlight link Whitespace Conceal
let b:ws = 1
endif
syntax clear Whitespace
syntax match Whitespace / / containedin=ALL conceal cchar=·
setlocal conceallevel=2 concealcursor=c
endfunction
augroup Whitespace
autocmd!
autocmd BufEnter,WinEnter * call Whitespace()
augroup END
将这些行添加到~/.vimrc并开始新的Vim会话,以查看仍然不完美的魔术发生。
随意编辑默认颜色和隐藏字符。
注意:几种语言中*FuncBody语法组中的某些内容会阻止显示中间点。我还不知道如何使该解决方案更可靠。
我用这个
/\s
:set hlsearch
以突出显示空白。它搜索所有空白,然后启用高亮显示,使其突出显示。但是,它不打印特殊字符。