Vim が実際に表示するバッファ内の行数をカウントできるようにしたいと考えています。具体的には:
1 つのルート要素と、このような同じタイプの多くの子要素を含む xml ファイルがあります。
<fields>
<field field="Delegation">
...
</field>
<field field="Assignment">
...
</field>
⋮
</fields>
すべてのフィールド要素を 1 行にまとめると、次のようになります。
<fields>
+-- 12 lines: <field field="Delegation">
+-- 7 lines: <field field="Assignment">
⋮
</fields>
私が望む結果は、ファイル内のフィールド要素の数を数えることです。:g/field field/p
これで、または他の vim コマンドや外部プログラムなどを使用しset number
てこれset relativenumber
を実行できることがわかりました。実行するコマンドを考える必要があります。
これを行う方法は、現在のウィンドウに「表示されている行」がいくつあるか、または現在どの「表示されている行」にあるかをvimに教えてもらうことかもしれないと思いました。
私が知る限り、vim は現時点ではこれをサポートしていません。このようなものに出くわした唯一の参照はthis questionでした.2つの答えは、vimがこれを行うことができないと明示的に言っているようですが、私にはあまり明確ではありませんでした.
ある種の魔法のプラグインを使用しても、vim がこれを実行できない場合はありますか? 必要に応じて自分で書くことを嫌いませんが、そのようなことを書くために必要なものをどこから探し始めればよいかさえわかりません。
繰り返しますが、「xml 要素の子要素の数を数える」簡単な方法が何百もあることは知っています。このようなファイルを編集するときに、自分がどの番号要素にいるのか (つまり、100 の 23 番目) を大まかに知りたいだけです。