2

netrw を使用して現在のディレクトリのファイルを開き、次に:Sexplorenetrw ウィンドウを使用して netrw を再度開くと (splitbelow設定済み)、編集中のファイルにカーソルが残り、CTRL-W組み合わせを使用して netrw ウィンドウに移動できません。

私は何か間違ったことをしていますか、それともこれはバグですか?

再現する手順

  • 走るvim .
  • netrw が開き現在のディレクトリ (たとえば、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_netrwPluginnetrw のバージョンを確認するために使用します)。

最新バージョンで試してください。


編集:

他のプラグインの干渉または設定が原因で問題が発生している可能性があります。Vim FAQ 2.5で説明されているアプローチに従ってみてください。

2.5。Vim で "xyz" (何らかの) 問題が発生しました。それが自分のセットアップまたは Vim に問題があると判断するにはどうすればよいですか? / Vim でバグを見つけましたか?

まず、エラーが実際のランタイム ファイルにあるのか、Vim と一緒に配布されているプラ​​グインにあるのか、それとも .vimrc または .gvimrc の構成オプションの単純な副作用なのかを確認する必要があります。まず、次のように vim を起動します。

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

これにより、Vim が非互換モード (-N) で、viminfo ファイルを読み取らず (-i NONE)、構成ファイルを読み取らずに (.vimrc ファイルを読み取らない場合は -u NONE、.gvimrc ファイルを読み取らない場合は -U NONE)、またはプラグインでも。

(...)

この方法で Vim を起動してもエラーが発生しない場合、問題はプラグインに関連しているか、ローカル セットアップ ファイルの 1 つの設定に関連しています。エラーの原因を突き止める必要があるため、次の方法で Vim を起動してみてください。

vim -u NONE -U NONE -N

エラーが発生した場合、問題は .viminfo ファイルにあります。次に、viminfo ファイルを削除します。エラーが発生しない場合は、次を試してください。

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

これは単純に .vimrc を構成ファイルとして使用しますが、プラグインはロードしません。今回エラーが発生した場合、エラーは .vimrc ファイル内の構成オプションが原因である可能性があります。vimrc ファイルの長さによっては、そのファイル内の出所を追跡するのが非常に難しい場合があります。

最善の方法は、:finish コマンドを .vimrc の途中に追加することです。次に、同じコマンド ラインを使用して再起動します。それでもエラーが発生する場合は、.vimrc の前半の設定が原因でバグが発生したに違いありません。そうでない場合、問題のある設定は .vimrc の後半にあるはずです。したがって、:finish コマンドをその半分の中央に移動します。これがエラーの原因であることがわかっている部分であり、問​​題のあるオプションが見つかるまで進みます。.vimrc の長さが 350 行の場合、問題のある行を見つけるのに最大 9 回試行する必要があります (実際には、行が互いに依存していることが多いため、これをさらに減らすことができます)。

明らかに、netrw を手動でロードする必要があります (これは plugin/netrwPlugin.vim をソースすることで実行できます。プラグイン マネージャを使用している場合は、プラグインを ~/.vim/ に移動するか、ランタイム パスを変更する必要があります。 autoload 関数) および setnocompatibleおよびsplitbelow.

実際には、この手順の適応バージョンが次の場所にあります: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 に答える