28

我目前正在尝试从 gedit 切换到 vim。我尝试让 vim 看起来类似于 gedit:

编辑

特别是,我想用点显示空间。

我目前有:

在此处输入图像描述

有一些区别,但看起来很相似(这是我当前的 .vimrc 文件)。但我没有得到那些点作为空格。

如何使 vim 显示空间?

我找到了一些答案(比如这个),这些答案似乎建议用特殊的可见字符替换空格,然后再将其替换回来。我不想每次都这样做。我希望能够打开 vim 并查看这些空间。

4

8 回答 8

48

我知道这是一个老话题,但有可能:

set lcs+=space:·

适用于我的 Gvim 7.4。

于 2016-07-29T07:13:18.140 回答
32

有时我绝对需要查看哪些空格是制表符,哪些是真正的空格字符,以及空格何时出现在行尾。

当我使用vim时,我使用:

:set list

(我可以用 关闭:set nolist

使用:set list,文字空格显示为空格,制表符显示为^I,行尾显示为亮粉色$。(因此,您在粉红色左侧看到的任何空白$都是真正的空格字符,而其右侧的空白只是行尾和右侧之间的“无”编辑。)

这很丑陋,但效果很好。

我不建议一直使用它——只是在那些需要查看文字空格和文字制表符存在的地方的时候。

于 2018-04-04T16:32:57.920 回答
12

虽然您不能在这里完全按照您的意愿行事,但如果您的推理与我的一样,您希望看到这些空格,因为它有助于验证正确的缩进(我那里有 2 个空格,还是 3 个?)。对于 Vim >= 7.3,您可以使用indentLine插件在每个缩进处添加一个标记。这很棒。

如果您正在使用Pathogen进行安装:

cd ~/.vim/bundle
git clone https://github.com/Yggdroot/indentLine

在此处输入图像描述

于 2014-12-18T22:08:01.003 回答
6

它可能值得undercurl用来完成这项工作。

hi WhiteSpaces gui=undercurl guifg=LightGray
match WhiteSpaces / \+/

或者你可以把它放在你的.vimrc

autocmd ColorScheme * highlight WhiteSpaces gui=undercurl guifg=LightGray | match WhiteSpaces / \+/ 

在此处输入图像描述

于 2013-04-09T16:19:10.333 回答
4

我遇到了这个问题,因为我想显示前导空格(缩进空格)。上面
提到 的插件indentLine是该问题的解决方案。如果您使用Vundle作为插件管理器,您可以添加到您的然后运行以安装插件。Plugin 'Yggdroot/indentLine'.vimrcvim +PluginInstall +qall

将以下两行添加到您的.vimrc以将前导空格显示为 ·.

let g:indentLine_leadingSpaceChar='·'
let g:indentLine_leadingSpaceEnabled='1'

编辑:空间不是空间

于 2019-03-13T08:11:09.700 回答
2

TLDR:你不能。

Vim 提供了'listchars'显示制表符与空格的选项,以及关键位置的空格字符,即行尾的尾随。它不提供对所有空格的修改:空白方块是空格、句号。

如果您对引用问题中发布的解决方法不满意,那么除了修改 Vim 的源代码并编译您自己的二进制文件之外,没有其他方法可以实现。

于 2013-04-09T14:45:55.140 回答
2

使用 JL 和 Cedric Simon 的答案。编辑 ~/.vimrc 并添加:

set lcs+=space:·
nmap <F2> :set invlist<CR>
imap <F2> <ESC>:set invlist<CR>a

当你使用 vim 时,只需 presF2

于 2019-01-14T22:15:04.423 回答
0

您不需要为此安装任何插件:

set listchars=tab:\|\ 
"set listchars=tab:\┊\ 
"set listchars=tab:\┆\ 
"set listchars=tab:\¦\ 
set list
于 2020-05-27T16:26:00.393 回答