我找不到一种方法来让Vim将所有空格显示为一个字符。我找到的只是制表符、尾随空格等。
当前回答
我认为这里的其他答案更全面,但我想我会分享一个技巧,我通常使用它来区分制表符和空格:
:syntax on
:set syntax=whitespace
这些是空白编程语言的语法高亮显示规则-制表符以绿色显示,空格以红色显示。:)
可以与许多其他答案中提到的:set list组合使用,尽管选项卡将显示为^I,没有绿色的高亮,但空格将显示为红色。
其他回答
我喜欢使用特殊字符来显示空白,这样更清晰。即使是切换地图也是快速检查的关键功能。
您可以在一个自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
就这样
下面的代码基于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语法组中的某些内容会阻止显示中间点。我还不知道如何使该解决方案更可靠。
将这些黑客作为注释保存在.vimrc中,因此在shell中,只需:
echo '
" how-to see the non-visible while spaces
" :set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣
" set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<
" :set list
" but hei how-to unset the visible tabs ?!
" :set nolist
' >> ~/.vimrc
要突出显示空间,只需搜索:
/<空间>
笔记:<space>表示只需键入空格字符。使用:set hlsearch启用搜索结果的突出显示
突出显示空格和制表符:/[<space><tab>]
删除高光的快速方法是搜索其他任何内容:/美国国防部
(只需键入任意随机字符的短列表)
也可以高亮显示空间(用块替换空间):
:%s/ /█/g
(在写入之前,请将其撤消)