3

:qall によって vim で開いているすべてのバッファを閉じることができることを知っています。

保留中の開始バッファへのイベントを閉じたい。
P4 サンドボックスで変更を確認しているときに問題が発生しました。複数のファイルに変更があり、「P4 diff」でコードを確認して、P4DIFF を vimdiff に設定しようとした場合。
変更されたすべてのファイルの vimdiff を 1 つずつ開きます。10 個のファイルが開いていて、2 個のファイルを確認した後、残りの 8 個のファイルの diff を閉じたいとします。どうやってやるの?

ありがとう、

4

4 に答える 4

0

いくつかの引数 (... 引数リストとして知られています) を指定して vim を開くと仮定しています。

おそらくリセットする必要があります:

 :args %

リストを選択的に管理することもできます ( :argdelete)。詳しくは::he arglist

于 2011-10-06T08:42:37.887 に答える
0

これは、急いで学んだ Vimscript の仕事のように思えます! 特に、、、:bufdoおよびifステートメントmatchです。

次のことを試してください。

:bufdo if match(expand("%"), ".vim") >= 0 | bw | endif
  • bwbuffer wipeEx-mode(:オペレーター)用です
  • expand("%")現在のバッファの名前を返します
  • match(string, pattern)のインデックスを見つけ patternますstring
  • |Ex-modeの場合は別の行

これは、ファイル名に を含むバッファーに一致.vimし、それらのバッファーを閉じます。

これらが に供給される一時バッファである場合vimdiff、そもそもファイル名がないと思います。bufnr(".")おそらく、現在のバッファの番号を出力するために使用できます。次に、特定の数を過ぎた、または前のすべてのバッファを閉じることができます。

特定のプラグインを使用すると、おそらくさらに多くのバッファ操作を行うことができます。プラグインの管理に役立つ次の 3 つのプラグインのいずれかを採用することを検討しています。

  • LustyExplorer
  • ファジーファインダー
  • minibufexpl メリットについて話すことはできませんが、インターネットや IRC で何度か言及されているのを聞いたことがあります。
于 2011-10-06T05:07:41.857 に答える
0

これは悪いハックですが、他の答えがうまくいかなかったのでここに入れます。

.vimrc の上に qoutes なしで "qall" を追加します。

:e ~/.vimrc
:source ~/.vimrc
:q

開いた後、すべてのファイルは自動的に閉じます。

次に、emacs または sed で vimrc を開き、qall を削除します。

于 2015-03-08T06:58:30.567 に答える
0

免責事項: 私は perforce を使用していないので、仮定を立てる必要がありました: 複数のファイルにコミットされていない変更がある場合、多くの VCS のように動作し、構成された diff コマンド (この場合は vimdiff)をそれぞれで実行します。ファイルを順番に変更しました(これは、「変更されたすべてのファイルのvimdiffを1つずつ開く」という意味だと思います)。

この場合、vim は特定のファイルの変更を表示するときに残りのファイルへの参照を持たないため、1 回の vim セッション内での巧妙な操作は役に立ちません。

ワークフローを少しでも変更したい場合は、私が見つけた次の vim スクリプトで何かできるかもしれません: http://www.vim.org/scripts/script.php?script_id=240

P4 GUI をモデルにしていると主張しているので、うまくいけばあなたの使い方にうまく適合するでしょう。スクリプトの概要から、変更されたファイルの概要を表示し、変更を表示できるようにする必要があるように思えます。

これがどれもあなたに適していない場合はCtrl-C、ファイルの vimdiff セッションを閉じた直後にいつでも古いお気に入りを試すことができます。

于 2012-05-03T11:22:15.043 に答える