現在差分処理中のすべてのファイルを特定する必要がある vim プラグインを作成しています。それdiffが設定されているものです。マニュアルを調べましたが、あまり見つかりませんでした。
これを行うことは可能ですか。
この質問は、実際には質問how-to-detect-the-position-of-window-in-vimに関連しています。その質問では、ウィンドウの位置を取得して、どの差分が右のものでどれが左のものであるかを検出しようとしていました。私が得た解決策は、winnr() を使用することでした
このソリューションは、ウィンドウが 2 つしかない場合にのみ機能します (差分が表示されます)。vimで複数のウィンドウが開いていても、どれが左にあり、どれが右にあるかを判断できるように、汎用的にしたいと考えています。これは私が問題を解決するために考えていたことです
- リストされたすべてのバッファのリストを取得します
- このバッファのそれぞれについて、それ
diffが1そのためかどうかを判断します - ウィンドウ番号を取得するために
diff使用1する場合。bufwinnr() - ウィンドウ番号から、どれが左でどれが右かを判断します。左の方がウィンドウ番号が小さい
- そして、現在のバッファー
alt-leftの winnr を使用して、現在のバッファー (「alt-right」が押された場所) が左か右かを判断します。
不足している部分は 1 と 2 です。1 の場合は ls を使用できますが、その出力を解析する必要があります。リストされたすべてのバッファのリストを取得する簡単な方法はありますか。そして、そのバッファdiffが1かどうかを確認する方法があります。
より簡単な解決策の提案も大歓迎です。