我正在尝试从gedit转换到vim,希望让vim看起来与gedit类似(如下图所示),特别是想用点来显示空格。
目前我的vim界面如下:
虽然有些不同,但看起来相当相似(这是我的.vimrc文件)。但我没有看到那些表示空格的点。
如何让vim显示空格?
我找到了一些答案(例如这个),它们似乎建议将空格替换为特殊的可见字符,然后再替换回来。 我不想每次都这么做。 我希望能够打开vim并看到那些空格。
我正在尝试从gedit转换到vim,希望让vim看起来与gedit类似(如下图所示),特别是想用点来显示空格。
目前我的vim界面如下:
虽然有些不同,但看起来相当相似(这是我的.vimrc文件)。但我没有看到那些表示空格的点。
如何让vim显示空格?
我找到了一些答案(例如这个),它们似乎建议将空格替换为特殊的可见字符,然后再替换回来。 我不想每次都这么做。 我希望能够打开vim并看到那些空格。
set list
此外,使用 .
来显示空格。
set lcs+=space:·
使用以下代码关闭它
set nolist
set nolist
。 - savx2set list!
- dunajski有时候我需要明确地看到哪些空格是制表符,哪些是普通的空格字符,并且需要知道行末是否存在空格。
当我使用vim
时,我使用以下命令:
:set list
我可以使用:set nolist
关闭此功能。
使用:set list
命令,空格会显示为空格,制表符会显示为^I
,行尾符号会呈现出明亮的粉色$
。(因此,您在粉色$
左侧看到的任何空格都是真正的空格字符,它右侧的空白只是编辑器右侧和行尾之间的"nothing"。)虽然有点丑陋,但它很有效。
我不建议一直使用这个功能,只在必须查看实际空格和制表符存在的情况下使用。
虽然你不能在这里做到完全符合你的要求,但如果你和我一样的思考方式,你想看到那些空格是因为它有助于验证正确的缩进(我有2个空格还是3个空格?)。对于Vim >= 7.3,你可以使用indentLine插件,在每个缩进处添加一个标记。它很棒。
如果您使用Pathogen,则可以安装如下:
cd ~/.vim/bundle
git clone https://github.com/Yggdroot/indentLine
也许值得使用undercurl
来完成这项工作。
hi WhiteSpaces gui=undercurl guifg=LightGray
match WhiteSpaces / \+/
或者您可以将此代码放入您的.vimrc
文件中。
autocmd ColorScheme * highlight WhiteSpaces gui=undercurl guifg=LightGray | match WhiteSpaces / \+/
.vimrc
文件中添加了这两行代码,但是我没有看到空格被下划线标记。你知道为什么吗? - Martin Thoma:colorscheme
时,自定义高亮设置将被清除。请尝试以下操作:autocmd ColorScheme * highlight WhiteSpaces gui=undercurl guifg=LightGray | match WhiteSpaces / \+/
- ernixundercurl
可能仅在 GUI 中可用。 - ernixPlugin 'Yggdroot/indentLine'
添加到你的.vimrc
中,然后运行vim +PluginInstall +qall
来安装插件。
将以下两行代码添加到你的.vimrc
中以将前导空格显示为·
。let g:indentLine_leadingSpaceChar='·'
let g:indentLine_leadingSpaceEnabled='1'
:help 'listchars'
获取详细信息。您可以通过将该命令放入~/.vimrc
中来实现屏幕截图中看到的效果。:set list listchars+=space:. listchars-=eol:$
使用J-L和Cedric Simon的答案。编辑~/.vimrc并添加:
set lcs+=space:·
nmap <F2> :set invlist<CR>
imap <F2> <ESC>:set invlist<CR>a
当你使用vim时,只需按下F2
键。
您不需要安装任何插件来完成此操作:
set listchars=tab:\|\
"set listchars=tab:\┊\
"set listchars=tab:\┆\
"set listchars=tab:\¦\
set list