34

是否可以在 Vim 中不为空行显示 ~ ?

这混淆了 Mac Vim 的滚动条,我很不喜欢这些波浪线。

4

6 回答 6

56

:hi NonText guifg=bg

该命令应将非文本字符的颜色设置为与背景颜色相同。

于 2012-02-23T03:39:50.797 回答
49

维姆 8.x

您现在可以仅更改缓冲区末尾的颜色~

highlight EndOfBuffer ctermfg=black ctermbg=black

请参阅 Vim 8.x 的更新日志。

于 2016-10-14T20:07:47.027 回答
11

正如jamessan 所说,您不能禁用它们。滚动行为也不是 MacVim 特有的——它在终端和 gvim 中的工作方式相同:

终端中的屏幕截图

与其将其视为问题,不如将其视为 Vim 灵活性的一部分。例如,您可以使用zt命令将当前行滚动到屏幕顶部,而不管它在文件中的什么位置。这样可以更轻松地编写执行某些工作的宏,然后滚动回原来的位置。因此,命令<C-E>和选项<C-Y>变得更简单,'scrolloffset'选项也是如此。

如果必须的话,重新训练你的大脑,将 Vim 的滚动条想象为映射到哪一行在顶部,而不是哪一行是可见的。

于 2010-09-28T14:22:11.623 回答
4

您不能禁用它们,但您可以更改颜色方案,使NonText高亮组的颜色与 Normal 高亮组相同。但是,这不仅仅影响文档波浪线的结尾。

我怀疑它实际上是“混淆”了 MacVim 的滚动条,如果是,那么这是 MacVim 所做的修补中的一个错误。

于 2010-09-28T13:20:46.217 回答
2

波浪~字符旨在提醒用户这些行不是缓冲区内容的一部分。

上面的高亮技巧将隐藏~ 字符,但它仍然存在。对于某些终端,这甚至可能不起作用。如果您碰巧是 Neovim 用户,您可以使用fillcharsoption 来更改缓冲区符号的结尾,如下所示:

set fillchars=fold:\ ,vert:\│,eob:\ ,msgsep:‾

这将使用空间而不是~缓冲区结束,有效地隐藏烦人的~.

您可能还对这里的讨论感兴趣。

于 2020-10-31T07:45:37.827 回答
1

对于 NeoVim,您可以将fillchars值设置为eob空格字符,这将有效地隐藏它。(这可能不适用于普通的 Vim)

在 Lua (Nvim 0.5+) 中:

vim.wo.fillchars='eob: '

在 VimScript 中:

set fillchars=eob:\ 

注意:调用上述方法也会覆盖您fillchars对其他项目的值(如果已设置),因此请使用此作为参考来同时设置多个值:

set fillchars=eob:\ ,fold:\ ,vert:\│

或使用set fillchars+=...将其附加到您现有的值。

于 2022-01-28T01:19:40.040 回答