我目前正在尝试从 gedit 切换到 vim。我尝试让 vim 看起来类似于 gedit:
特别是,我想用点显示空间。
我目前有:
有一些区别,但看起来很相似(这是我当前的 .vimrc 文件)。但我没有得到那些点作为空格。
如何使 vim 显示空间?
我找到了一些答案(比如这个),这些答案似乎建议用特殊的可见字符替换空格,然后再将其替换回来。我不想每次都这样做。我希望能够打开 vim 并查看这些空间。
我目前正在尝试从 gedit 切换到 vim。我尝试让 vim 看起来类似于 gedit:
特别是,我想用点显示空间。
我目前有:
有一些区别,但看起来很相似(这是我当前的 .vimrc 文件)。但我没有得到那些点作为空格。
如何使 vim 显示空间?
我找到了一些答案(比如这个),这些答案似乎建议用特殊的可见字符替换空格,然后再将其替换回来。我不想每次都这样做。我希望能够打开 vim 并查看这些空间。
我知道这是一个老话题,但有可能:
set lcs+=space:·
适用于我的 Gvim 7.4。
有时我绝对需要查看哪些空格是制表符,哪些是真正的空格字符,以及空格何时出现在行尾。
当我使用vim
时,我使用:
:set list
(我可以用 关闭:set nolist
)
使用:set list
,文字空格显示为空格,制表符显示为^I
,行尾显示为亮粉色$
。(因此,您在粉红色左侧看到的任何空白$
都是真正的空格字符,而其右侧的空白只是行尾和右侧之间的“无”编辑。)
这很丑陋,但效果很好。
我不建议一直使用它——只是在那些需要查看文字空格和文字制表符存在的地方的时候。
虽然您不能在这里完全按照您的意愿行事,但如果您的推理与我的一样,您希望看到这些空格,因为它有助于验证正确的缩进(我那里有 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 / \+/
我遇到了这个问题,因为我想显示前导空格(缩进空格)。上面
提到
的插件indentLine是该问题的解决方案。如果您使用Vundle作为插件管理器,您可以添加到您的然后运行以安装插件。Plugin 'Yggdroot/indentLine'
.vimrc
vim +PluginInstall +qall
将以下两行添加到您的.vimrc
以将前导空格显示为 ·
.
let g:indentLine_leadingSpaceChar='·'
let g:indentLine_leadingSpaceEnabled='1'
编辑:空间不是空间
TLDR:你不能。
Vim 提供了'listchars'
显示制表符与空格的选项,以及关键位置的空格字符,即行尾的尾随。它不提供对所有空格的修改:空白方块是空格、句号。
如果您对引用问题中发布的解决方法不满意,那么除了修改 Vim 的源代码并编译您自己的二进制文件之外,没有其他方法可以实现。
使用 JL 和 Cedric Simon 的答案。编辑 ~/.vimrc 并添加:
set lcs+=space:·
nmap <F2> :set invlist<CR>
imap <F2> <ESC>:set invlist<CR>a
当你使用 vim 时,只需 presF2
您不需要为此安装任何插件:
set listchars=tab:\|\
"set listchars=tab:\┊\
"set listchars=tab:\┆\
"set listchars=tab:\¦\
set list