vim中的水平线是什么意思?在编辑远程文件时,我在当前行中看到一条水平线。
我在编辑本地文件时没有看到它
修改 在保存文件(:w)之前,不显示cursorline。当我输入:w并输入密码时,会出现光标。为什么会有这样的行为?当我在远程机器中编辑文件时,光标线关闭并且不显示。
答案 0 :(得分:11)
正如其他人所回答的那样,效果可能是由cursorline
option引起的。
您可以通过在verbose
command下运行命令set optname?
来跟踪脚本对选项所做的最新更改:
: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加载之前处于活动状态的值相匹配,那么您将不会注意到它
答案 1 :(得分:5)
我不太了解让netrw真正捕获正确值的最简单的解决方案,但至少(因为对我来说,nocul是对的),添加:
let g:netrw_cursorline=0
我~/.vimrc
的结尾似乎已经解决了我的问题。希望这有助于某人!
答案 2 :(得分:4)
这是cursorLine
。它的外观在你的colorscheme中定义。远程计算机上的那个可能与您的不同,或者您的客户端/服务器$TERM
之间存在不匹配。
答案 3 :(得分:2)
Yup,“:设置游标线”或“:设置nocursorline ”以打开或关闭该行。
命令“ vim scp:// .... ”将远程文件复制到本地计算机(即运行“vim”进程的计算机)上,然后在“vim”中打开文件“为了编辑,然后,如果您修改了文件,请将文件复制回远程系统。因此,语法突出显示等仅由本地计算机上的“vim” 确定。
具有相同语法类型的文件(“:se syn ”以显示当前语法突出显示方案)以相同的方式突出显示。您看到差异的文件是否具有相同的语法类型?
答案 4 :(得分:2)
netrw.vim版本142修复了这个bug,至少对我来说是这样的(vim 7.3,旧的netrw.vim版本是140,在cygwin下运行)。
您可以在此处获取最新版本:http://www.vim.org/scripts/script.php?script_id=1075