2

如果我使用 netrw 打开当前目录中的文件,然后使用:Sexplore下面打开的 netrw 窗口(我已splitbelow设置)重新打开 netrw,但光标仍保留在正在编辑的文件中,我无法使用CTRL-W组合移动到 netrw 窗口。

我做错了什么还是这是一个错误?

重现步骤

  • vim .
  • netrw opens,突出显示当前目录中的一个文件(比如说 test.txt),然后按 Return,文件 test.txt 将打开
  • 运行:Sexplore命令
  • netrw在下方打开,但光标仍保留在先前打开的文件中。

我的.vimrc

set nocompatible
set splitbelow

vim版本

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Dec  8 2015 23:11:08)
MacOS X (unix) version
Included patches: 1-944

这是它的样子:vim 错误

4

1 回答 1

2

我无法使用 154a 版重现(用于:echo g:loaded_netrwPlugin检查您的 netrw 版本)。

尝试使用最新版本


编辑:

问题可能是由其他一些插件干扰或设置引起的。您可以尝试按照Vim FAQ 2.5中描述的方法:

2.5. 我对 Vim 有一个“xyz”(一些)问题。如何确定是我的设置问题还是 Vim 问题?/ 我在 Vim 中发现错误了吗?

首先,您需要确定错误是在实际运行时文件中还是在随 Vim 分发的任何插件中,或者是否是 .vimrc 或 .gvimrc 中的任何配置选项的简单副作用。所以首先,像这样启动 vim:

vim -u NONE -U NONE -N -i NONE

这会以非兼容模式 (-N) 启动 Vim,不读取 viminfo 文件 (-i NONE),不读取任何配置文件 (-u NONE 不读取 .vimrc 文件,-U NONE 不读取 .gvimrc 文件) 或甚至插件。

(...)

如果以这种方式启动 Vim 时没有出现错误,那么问题可能与您的某些插件有关,或者与您的本地安装文件之一中的某些设置有关。您需要找出触发错误的原因,您尝试以这种方式启动 Vim:

vim -u NONE -U NONE -N

如果出现错误,则问题出在您的 .viminfo 文件上。然后只需删除 viminfo 文件。如果错误没有发生,请尝试:

vim -u ~/.vimrc --noplugin -N -i NONE

这只会使用您的 .vimrc 作为配置文件,但不会加载任何插件。如果这次出现错误,错误可能是由您的 .vimrc 文件中的某些配置选项引起的。根据您的 vimrc 文件的长度,在该文件中追踪来源可能非常困难。

最好的方法是在 .vimrc 中间添加 :finish 命令。然后使用相同的命令行再次重新启动。如果错误仍然存​​在,则该错误一定是由于您的 .vimrc 前半部分中的设置引起的。如果没有发生,那么有问题的设置必须在.vimrc 的后半部分。因此,将 :finish 命令移动到那一半的中间,您知道其中会触发错误并继续前进,直到找到有问题的选项。如果你的 .vimrc 有 350 行长,你最多需要 9 次尝试来找到有问题的行(实际上,这通常可以进一步减少,因为行通常是相互依赖的)。

显然,您必须手动加载 netrw(这可以通过采购 plugin/netrwPlugin.vim 来完成 - 如果您使用一些插件管理器,您将不得不将插件移动到 ~/.vim/ 或更改您的运行时路径,因为自动加载功能)并设置nocompatiblesplitbelow

实际上有这个过程的一个改编版本:help netrw-debug

第2步:假设你已经安装了最新版本的netrw,检查你的问题是否真的是由于netrw。创建一个名为 netrw.vimrc 的文件,其内容如下:

set nocp  
so $HOME/.vim/plugin/netrwPlugin.vim 

然后按如下方式运行 netrw:

vim -u netrw.vimrc --noplugins [some path here] 

执行您需要的任何 netrw 命令,并检查问题是否仍然存在。这个过程回避了由于个人 .vimrc 设置和其他插件引起的任何问题。如果问题没有出现,那么您需要确定 .vimrc 中的哪些设置导致与 netrw 或哪个插件冲突。

第 3 步:如果问题仍然存在,则从 netrw 获取调试跟踪:

(...)

于 2015-12-09T14:43:53.417 回答