vim中的水平线是什么意思? 在编辑远程文件时,我在当前行看到一条水平线。
编辑本地文件时我没有看到它
编辑: cursorline不显示,直到我保存文件(:W)。 当我input:w并input密码时,出现cursorline。 为什么会有这样的行为? 当我在远程机器上编辑文件cursorline被closures,不显示。
正如其他人所回答的,其效果可能是由cursorline
选项造成的。
您可以通过运行命令set optname?
来跟踪最近更改选项的脚本是什么set optname?
在verbose
命令下 :
:verbose set cursorline?
你可能会发现Netrw插件设置了它; Netrw处理本地目录浏览和远程目录/文件访问,就像你的scp://
例子。 Netrw为了自己的目的(例如目录列表)调整游标线(和游标列),但它试图将值恢复到“用户值”。 不幸的是,它的“用户价值”的想法是在Netrw代码的一部分加载并且之后没有被更新时被捕获的。
我的猜测是,通过某种方式(通过其他插件或者一些配置),当Netrw加载(并捕获它的值)时, cursorline
被设置,但是在开始编辑第一个文件的时候它会被重置。 然后,当你以后保存文件( :w
)时,Netrw恢复“捕获”值。 不幸的是,似乎没有什么好方法来更新cursorline
选项的这个“捕获”值(对于它使用的脚本变量没有“外部”访问权限,如果手动重新加载文件,它不会“重新捕获” )。
然而,你可以做的是明确地加载Netrw的那个“捕获”游标线,当你想要的值是活跃的。 你可以在你的~/.vimrc
早期使用以下两个命令来做到这一点(如果有必要的话,可能在最上面),它需要在第一次使用autoload/netrw.vim
之前):
set nocursorline runtime autoload/netrw.vim " will 'capture' cursorline and cursorcolumn values
Netrw仍然会设置/重置cursorline
(和cursorcolumn
),但是只要你想要的值与Netrw被加载之前激活的值相匹配,你就不会注意到它。
这是cursorLine
。 它的外观是在你的colorscheme中定义的。 远程计算机上的那个可能与您的不同,或者您的客户机/服务器的$TERM
之间不匹配。
我不太清楚最简单的解决方案,让netrw真正掌握正确的价值,但至少(因为对我来说,nocul是正确的),补充说:
let g:netrw_cursorline=0
到我的~/.vimrc
结尾似乎已经解决了我的问题。 希望这可以帮助别人!
是,“ :设置cursorline ”或“ :设置nocursorline ”打开或关闭线。
命令“ vim scp:// …. ”将远程文件复制到本地机器(即“vim”进程运行的机器),然后在“vim”中打开文件进行编辑,如果你已经修改了文件,将文件复制回远程系统。 因此,语法突出显示等仅由本地机器上的“vim”确定。
具有相同语法类型的文件(“ :se syn ”以显示当前语法突出显示方案)以同样的方式突出显示。 那些你看到差异的文件是否具有相同的语法类型?
netrw.vim版本142修复了这个bug,至少对我来说(vim 7.3,netrw.vim版本是140,在cygwin下运行)。
你可以在这里得到最新版本: http : //www.vim.org/scripts/script.php?script_id=1075