我找不到一种方法来让Vim将所有空格显示为一个字符。我找到的只是制表符、尾随空格等。


当前回答

将这些黑客作为注释保存在.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

其他回答

如果设置:

: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中定义函数。

如果用空格表示“”字符,我的建议就是搜索/替换。正如其他人所暗示的,set list将非打印字符更改为以列表字符配置的可见字符。

要将空格显式显示为其他字符,应使用类似于以下内容的方法:

:%s//█/克

然后只需撤消更改即可再次返回。

(以获得█ 我按了这个精确的键顺序::%s//CTRL-KFB/g)

:set列表将以字符形式显示所有空白。除了一个空间之外,其他所有的东西看起来都会不同于它的正常状态,这意味着如果你仍然看到一个普通的旧空间,那真的是一个普通旧空间。:)

我喜欢使用特殊字符来显示空白,这样更清晰。即使是切换地图也是快速检查的关键功能。

您可以在一个自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