vim中的水平线是什么意思?在编辑远程文件时,我在当前行中看到一条水平线。

编辑本地文件时看不到

编辑:
在保存文件(:w)之前,游标线不会显示。当我键入:w并输入密码时,将显示光标线。为什么会有这种行为?当我在远程计算机上编辑文件时,光标线关闭并且未显示。

最佳答案

正如其他人回答的那样,这种影响可能是由 cursorline option引起的。

您可以通过在 set optname? command下运行verbose命令来跟踪脚本对选项的最新更改:

:verbose set cursorline?

您可能会发现Netrw插件对其进行了设置。 Netrw像scp://示例一样处理本地目录浏览和远程目录/文件访问。 Netrw出于自身目的(例如目录列表)调整了cursorline(和cursorcolumn),但尝试将其值恢复为“用户值”。不幸的是,当部分Netrw代码加载时,就捕获了其“用户值”的概念,此后未进行更新。

我的猜测是,以某种方式(通过某些其他插件或一些配置),在Netrw加载(并捕获其值)时设置了cursorline,但稍后在开始编辑第一个文件时将其重置。然后,当您以后保存文件(:w)时,Netrw恢复“捕获的”值。不幸的是,似乎没有什么好方法来更新cursorline选项的“捕获”值(对其使用的脚本变量没有“外部”访问权限,如果手动重新加载文件,则不会“捕获”) )。

但是,您可以做的是在所需的值处于事件状态时显式加载Netrw的位,该位“捕获” cursorline。您可以在~/.vimrc的开头使用以下两个命令来完成此操作(如果需要的话,可以在最顶层-需要在第一次使用autoload/netrw.vim之前):
set nocursorline
runtime autoload/netrw.vim " will 'capture' cursorline and cursorcolumn values

Netrw仍将设置/重置cursorline(和cursorcolumn),但是只要您通常希望的值与Netrw加载前的事件值匹配,那么您就不会注意到它。

10-08 05:42