【问题标题】:Is it possible to not display a ~ for blank lines in Vim/Neovim?Vim/Neovim 中的空行是否可以不显示 ~?
【发布时间】:2011-04-18 07:16:49
【问题描述】:

Vim 中的空行可以不显示 ~ 吗?

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

【问题讨论】:

  • Tilde color in vim?的可能重复
  • 好吧,不。这个问题其实我之前也看到过,和颜色无关。我想完全摆脱那些。它们在 MacVim 中触发了一个奇怪的滚动(这样你就可以滚动“太低”,所以只有最后一行在顶部可见):i.imgur.com/8f4u6.png -> i.imgur.com/vDMk3.png

标签: vim macvim neovim


【解决方案1】:

:hi NonText guifg=bg

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

【讨论】:

  • 出于某种原因,在执行此命令后,我仍然会在 Vim-Qt 和 Vim-GTK 中得到一些幽灵般的波浪线。这是a screenshot
  • :highlight EndOfBuffer ctermfg=gb 为我做的
【解决方案2】:

Vim 8.x

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

highlight EndOfBuffer ctermfg=black ctermbg=black

See changelog for Vim 8.x.

【讨论】:

  • 也适用于 neovim 0.5(刚刚测试了我当前的版本),干杯!
  • :highlight EndOfBuffer ctermfg=gb 为我做的
【解决方案3】:

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

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

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

【讨论】:

  • 有没有办法让 zz 将光标放在中心,即使当前行位于文件的开头?用“~”填充 SOF 上方的行?
  • “不要将其视为问题,而应该学习将其视为 Vim 灵活性的一部分……” - 另一种看待它的方式是,这些工具应该适合你;反之亦然。
【解决方案4】:

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

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

【讨论】:

  • 我认为他的困惑源于~ 字符的全屏高度,这使您始终可以向下滚动直到看到一行文本。
  • 确实,jleedev 做到了。例如,看这里:i.imgur.com/8f4u6.png。显示了一个滚动条,让我滚动以便只有“第四行”可见“。这没有任何意义,真的。
  • 正如 jleedev 所描述的,这确实有意义,因为您可以滚动缓冲区直到最后一行是唯一显示的内容。此时,滚动条将位于其频道的底部。
【解决方案5】:

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

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

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

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

您可能也有兴趣讨论here

【讨论】:

    【解决方案6】:

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

    在 Lua (Nvim 0.5+) 中:

    vim.wo.fillchars='eob: '
    

    在 VimScript 中:

    set fillchars=eob:\ 
    

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-10
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      相关资源
      最近更新 更多