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加载前的事件值匹配,那么您就不会注意到它。