我找不到一种方法来让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
就这样
将这些黑客作为注释保存在.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
把这个添加到我的.vimrc中对我很有用。只要确保你没有其他冲突。。
autocmd VimEnter * :syn match space /\s/
autocmd VimEnter * :hi space ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
如果设置:
: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中定义函数。