web-dev-qa-db-ja.com

Vim-ウィンドウで開いているバッファの動的リスト

Vimで開いているバッファのリストを維持するためにいくつかの方法を調査しましたが、それらのいくつかは非常に優れていますが、どれも私が望むように動作しないようです。私が望んでいるようなものは何も存在しない可能性が非常に高いので、質問しても害はありません。

私はGVimでNERDTreeを使用していますが、細長い左側のウィンドウに情報を表示するというアイデアが気に入っています。私の環境をどのように見せたいかを示す便利な図をまとめました。

|--------|---------------------------------------|
|        |                                       | 
|        |                                       | 
|NERDTree|           Windows                     | 
|        |                                       | 
|        |                                       | 
|        |                                       | 
|--------|                                       |
|        |                                       | 
|        |                                       | 
|  List  |                                       | 
|   of   |                                       | 
|  Open  |                                       | 
| Buffers|                                       | 
|        |                                       | 
|        |                                       | 
|--------|---------------------------------------|

だから私の質問は:現在開いているバッファのリストを維持し、そのリストからNERDTreeのようなウィンドウ内で選択/編集/閉じるvim-nativeまたはプラグイン対応の方法はありますか?

このアプローチはVimのやり方と矛盾する可能性があることを理解しており、複数のファイルを管理する方法について何か不足していると感じた場合Vimセッションで、提案を含めてコメントを残してください!

25
asfallows

Vim.orgのプラグインリポジトリを検索しましたか? 数十のバッファ切り替えプラグイン から選択できます BufferGator または SelectBuf から選択できます。あるいは、それらのほとんどは Vim wikiのニースリスト でコンパイルされます。


質問の最後の部分で触れたように、そのようなシステムは誰の好みにも合いません。

Ihateこれらのすべてのメニュー、ボタン、リストが常に開いている:開いているバッファーのリストは、実際に別のバッファーにジャンプして、そのようなリストを開くことは、私にとってスペースの無駄のように思えます。同じことは、スーパーチャージされたステータスラインにも適用できます。

私は 同じプラグイン を使用して、バッファーをすばやく切り替えたり、現在編集しているファイルの周りのファイルシステムをすばやく探索したりします。 ,f(ファイル)または,b(バッファ)を使用して呼び出すと、完了時にウィンドウが消えます。完璧です。 othersimilarplugins があります。そのアイデアが気に入ったら、すべて試してください。

[〜#〜]編集[〜#〜]

バッファを切り替えながら、CtrlPのアニメーションGIFを追加する必要があります。

Switching buffers with CtrlP

[〜#〜] endedit [〜#〜]

ネイティブ:sb <Tab>も、かなりすっきりしていますが、セクシーさは劣ります。あいまい一致はサポートされていませんが、いくつかの大きな利点があります。組み込みで、:e <Tab>:vs <Tab>などのように機能します。

7
romainl

MiniBufExplorer を強くお勧めします。参照 minibufexplorerの代替?

Screenshot

5
Marco

winmanager プラグインを使用してそれを正確に行う方法があります。この screenshot では、同じ垂直分割でNERDTreeとMiniBufExpl(github:techlivezheng/vim-plugin-minibufexpl、最新のコミットatm 349a9fbb)プラグインを組み合わせ、F4で切り替えます。理論的には、このソリューションは他のプラグインの組み合わせでも機能するはずです。

私の.vimrcの例

 "{{{MiniBufExpl config 
 let g:miniBufExplVSplit = 20"垂直に開く
 let g:miniBufExplSplitToEdge = 0 "前のウィンドウに対して相対的に開く(NERDTree)
 "}}} MiniBufExpl config 
 
" {{{winmanager config 
 "プラグインを登録します
 let g:NERDTree_title = 'NERD Tree' 
 let g:MiniBufExpl_title = 'MiniBufExpl' 
 
 "レイアウトを設定
 let g:winManagerWindowLayout = 'NERDTree | MiniBufExpl' 
 
"ハンドラNERDTree 
関数用! NERDTree_Start()
 exec 'NERDTree' 
 endfunction 
 
 "ハンドラのMiniBufExpl 
関数!MiniBufExpl_Start()
 exec 'MBEOpen '
 endfunction 
 
 "マッピングで分割をF4に切り替えます
 nmap&ltF4>:WMToggle 
"}}} winmanager config 

問題:

  • NERDTreeは、winmanagerが作成するバッファを使用しませんが、独自に開きます...
  • ...したがって、winmanagerバッファは未使用のままです
  • バッファ間をジャンプすると、MiniBufExplが正しく更新されない

私が達成した行動は完璧とはほど遠いですが、良い出発点です。

1
svlasov