我找不到一种方法来让Vim将所有空格显示为一个字符。我找到的只是制表符、尾随空格等。
当前回答
你可以使用
:set list
真正看到一条线的结构。您将显式地看到制表符和换行符。当你看到空白时,它真的是空白。
其他回答
: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
我认为这里的其他答案更全面,但我想我会分享一个技巧,我通常使用它来区分制表符和空格:
:syntax on
:set syntax=whitespace
这些是空白编程语言的语法高亮显示规则-制表符以绿色显示,空格以红色显示。:)
可以与许多其他答案中提到的:set list组合使用,尽管选项卡将显示为^I,没有绿色的高亮,但空格将显示为红色。
下面的代码基于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
以突出显示空白。它搜索所有空白,然后启用高亮显示,使其突出显示。但是,它不打印特殊字符。