我找不到一种方法来让Vim将所有空格显示为一个字符。我找到的只是制表符、尾随空格等。
当前回答
如果设置:
:highlight Search cterm=underline gui=underline ctermbg=none guibg=none ctermfg=none guifg=none
然后搜索空格,每个空格字符将显示为下划线字符。
您可以在切换空格“下划线”的便捷函数中使用此命令。
set hls
let g:HLSpace = 1
let g:HLColorScheme = g:colors_name
function ToggleSpaceUnderscoring()
if g:HLSpace
highlight Search cterm=underline gui=underline ctermbg=none guibg=none ctermfg=none guifg=none
let @/ = " "
else
highlight clear
silent colorscheme "".g:HLColorScheme
let @/ = ""
endif
let g:HLSpace = !g:HLSpace
endfunction
将功能映射到快捷键,快捷键包括:
nmap <silent> <F3> <Esc>:call ToggleSpaceUnderscoring()<CR>
注意:设置配色方案后,在vimrc中定义函数。
其他回答
我认为这里的其他答案更全面,但我想我会分享一个技巧,我通常使用它来区分制表符和空格:
:syntax on
:set syntax=whitespace
这些是空白编程语言的语法高亮显示规则-制表符以绿色显示,空格以红色显示。:)
可以与许多其他答案中提到的:set list组合使用,尽管选项卡将显示为^I,没有绿色的高亮,但空格将显示为红色。
把这个添加到我的.vimrc中对我很有用。只要确保你没有其他冲突。。
autocmd VimEnter * :syn match space /\s/
autocmd VimEnter * :hi space ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
要突出显示空间,只需搜索:
/<空间>
笔记:<space>表示只需键入空格字符。使用:set hlsearch启用搜索结果的突出显示
突出显示空格和制表符:/[<space><tab>]
删除高光的快速方法是搜索其他任何内容:/美国国防部
(只需键入任意随机字符的短列表)
也可以高亮显示空间(用块替换空间):
:%s/ /█/g
(在写入之前,请将其撤消)
我没有从现有的答案中找到我想要的。下面的代码将突出显示所有的尾部空格亮红色
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()