Liv*_*oso 28
Vim 8.x:
您现在可以仅为缓冲区的末尾更改颜色~:
highlight EndOfBuffer ctermfg=black ctermbg=black
She*_*yar 11
对于 NeoVim,您可以将 的fillchars值设置eob为空格字符,这将有效地隐藏它。(这可能不适用于普通 Vim)。
在 Lua 中(Nvim 0.5+):
\nvim.wo.fillchars=\'eob: \'\nRun Code Online (Sandbox Code Playgroud)\n在 Vim 脚本中:
\nset fillchars=eob:\\ \nRun Code Online (Sandbox Code Playgroud)\n注意:调用上面的方法将会覆盖你的fillchars其他项目的值(如果设置),因此请将此作为参考来一起设置多个值:
set fillchars=eob:\\ ,fold:\\ ,vert:\\\xe2\x94\x82\nRun Code Online (Sandbox Code Playgroud)\n或者使用set fillchars+=...它来附加您现有的值。
Jos*_*Lee 10
正如jamessan所说,你无法禁用它们.滚动行为也不是特定于MacVim的 - 它在终端和gvim中的工作方式相同:

你应该做的就是学会将这看作是Vim灵活性的一部分,而不是将其视为一个问题.例如,您可以使用该zt命令将当前行滚动到屏幕顶部,而不管文件在何处.这样可以更容易地编写执行某些工作的宏,然后回滚到原来的位置.这些命令因此<C-E>而<C-Y>变得更简单,'scrolloffset'选项也是如此.
如果必须的话,重新训练你的大脑,将Vim的滚动条视为映射到哪条线在顶部,而不是哪个屏幕是可见的.
波形~符旨在提醒用户这些行不是缓冲区内容的一部分。
上面的突出显示技巧将隐藏~ 字符,但它仍然存在。对于某些终端,这甚至可能不起作用。如果您碰巧是 Neovim 用户,您可以使用fillchars选项来更改缓冲区符号的结尾,如下所示:
set fillchars=fold:\\ ,vert:\\\xe2\x94\x82,eob:\\ ,msgsep:\xe2\x80\xbe\nRun Code Online (Sandbox Code Playgroud)\n这将使用空间而不是~缓冲区末尾,有效隐藏恼人的~.
您可能还对这里的讨论感兴趣。
\n小智 5
对于 Lua,而不是:
vim.wo.fillchars='eob: '
Run Code Online (Sandbox Code Playgroud)
使用以下内容:
vim.opt.fillchars = { eob = ' ' }
Run Code Online (Sandbox Code Playgroud)
前者不会持续存在新缓冲区,而后者则会持续存在。