每行结尾处的美元符号(“$”)在Vim中代表什么?

22

我相对来说还很陌生Vim。每次使用vim LearnRuby.rb启动Vim时,每行末尾都会出现一个美元符号。

为什么会这样?


5
可能是第一个,因为那是美元符号($)。 - Bernhard
2
@LivingThing $ 标记了行的结尾,但默认情况下不会被打印出来,可能需要进行一些设置。 - Bernhard
@Bernhard:有什么办法可以让它变得不可见吗? - mu_sa
我最初将较新的问题标记为此问题的重复,但是这里的答案实际上不如那些好,因此我已经撤销了提名,并改为将此问题提名为重复关闭。 - tripleee
4个回答

38
:set nolist

该命令会关闭当前缓冲区的特殊字符显示,例如制表符将被呈现为^I,行尾符号将显示为$

但是,如果每次运行vim时都出现这种情况,则需要查看您的.vimrc(或其他启动文件)并找出导致执行set list的原因。


2

打开~/.vimrc文件并检查其内容
如果您看到以下行:

set list

这意味着它会在每一行显示$来标记行尾。要么删除它,要么在vi编辑器中使用:set nolist命令。

1
它也可以在系统vimrc中由奇怪的管理员完成。 - Bernhard
5
我觉得你会发现,“奇怪的管理员”有点冗余 :-) - paxdiablo
3
两个答案都建议关闭列表而不是调整listchars。这是显示制表符和尾随空格的非常有用的选项。 - ZyX
我也发现编辑listchars可能是更好的方法。 - Asken
3
那为什么不单独回答这个问题呢? - koniiiik
显示剩余2条评论

1

显然,解决方案不是使用:set nolist,因为这也会禁用其他字符,如制表符和尾随空格,这些字符非常有用。如果您想要去掉所有特殊字符,那么:set nolist将是正确的答案。

如果您只想快速修复,可以将以下内容添加到您的vimrc中:

set listchars+=eol:\

这是一个反斜杠后跟一个空格。

或者,您可以设置listchars的所有参数,例如set listchars=tab:>\ ,trail:.并且不包括eol参数,该参数确定用于行末的字符。

请参阅:h listhcars:h list


0

编辑 - [/home/$USER/.config/nvim/init.vim] -> 通过注释(在行末添加“)-该行-[set listchars = tab:>\,trail:+,eol:$] -> 使其看起来像这样 - [set listchars = tab:>\,trail:+,“eol:$] -


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接