4

vim 7.3、NERDTree 4.1 プラグイン、および VCSCommand バージョン 1.99.42 を使用しています。

VCSCommand でディレクトリをコミットするには、ディレクトリ バッファを開く必要があります (ディレクトリのすべてのコマンドで同じです)。ただし、NERD ツリー プラグインがインストールされているディレクトリ バッファを開こうとすると、バッファは関連するコミットを行うために必要なディレクトリ名。

これを防ぐにはどうすればよいですか?NERD ツリーがインストールされている標準のディレクトリ バッファを開くにはどうすればよいですか? コマンドを実行するために定期的に NERD ツリーをオフにするにはどうすればよいですか?

注: 開発者がファイル エクスプローラーとして Command-T を使用していたため、NERD ツリー プラグインを無効にしたと言っているこのスタックオーバーフローの質問を認識してますが、NERD ツリーを引き続き使用したいと考えています。NERD ツリーを無効にすることについては言及されていません。ヘルプで。

4

3 に答える 3

3

解決策はありますが、コーディングが必要でした。

netrwおよびNERDTreeプラグインを、有効化/無効化インターフェイスの種類で更新する必要があります。

変更する必要がある 2 つのファイルを使用して、この Gistを作成します。ファイル自体も添付されています。

  • netrwPlugin.vim は、vim インストール ディレクトリの下にあります。
  • NERD_tree は ~/.vim/plugin ディレクトリにあります (病原体を使用しない場合)。

この変更により、使用できます

call DisableNERDTree()

NERD を無効にして、vim に netrw を使用させる (これはオリジナルのファイル管理です)。

call HijackNERTW()

NERDTree を再度復元します。

もちろん、独自のラッパー関数を使用するか、VCS 自体を変更して、関連する VCS コマンドの前後に関数を呼び出す必要もあります。

これが役に立ったことを願っています。

2011-03-17 を編集:

これらの関数を手動で呼び出すとうまくいきます。すなわち:

  1. あなたが呼ぶcall DisableNERDTree()
  2. 次に、フォルダを編集します
  3. 次に、VCSコマンドを使用します
  4. そして最後にcall HijackNERTW()

これらの機能が自動化された方法で使用できるように 、パッチを更新しました。DisableNERDTree()ディレクトリを開いているディレクトリに変更します。例えば:

fun! NewVCSadd()
   call DisableNERDTree()
   :e . "start netrw
   :VCSAdd<CR>
   call HijackNERTW()
   :e . "start NERDTree
endfunction
于 2011-03-16T12:43:22.983 に答える
1

単純な組み合わせを使用します。再帰的な差分または再帰的なコミットを計画している場合-コマンド:Hexploreを実行します。これは分割ウィンドウでnetrwを開き、必要なディレクトリに移動して:VCSCommitまたは:VCSDiffを実行します。これは、追加の変更や複雑な操作を行わない簡単な修正です:)。

于 2011-06-02T09:14:55.680 に答える
0

Devemouse の変更と関数の例により、次の 2 つのラッパー関数を作成できました。これらは VCS コマンドを実行し、vim を以前の状態に戻します。

" ------------------ Functions ------------------------------

" Wrapper function for VCSAdd to enable it to work with Nerd tree
fun! NewVCSAdd()
   call DisableNERDTree()
   edit . "start netrw
   execute 'VCSAdd'
   call HijackNERTW()
   quit " quit add windows 
   quit " quit out of netrw-NerdTree window (we want it pure)
   NERDTree . 
endfunction

" Wrapper function for VCSCommit to enable it to work with Nerd tree
fun! NewVCSCommit(comment)
   call DisableNERDTree()
   edit . "start netrw
   execute 'VCSCommit ' . a:comment
   call HijackNERTW()
   quit " quit commit windows 
   quit " quit out of netrw-NerdTree window (we want it pure)
   NERDTree .
endfunction
于 2011-03-17T18:28:00.380 に答える