範囲に関係なく、範囲内の行をカウントしたいのですが、たとえば視覚的なブロックにします。それを行うための最短の方法は何ですか。私の頭に浮かぶのは次のようなものです。'<,'>s/.//n
しかし、それが最短の方法だとは思いません。
それで、誰かが私にヒントを与えることができますか?前もって感謝します。
回答:
ビジュアルモードで、を押します gC-g
典型的な出力:
Selected 7 of 22 Lines; 8 of 32 Words; 201 of 491 Chars; 201 of 497 Bytes-- VISUAL LINE --
出典::he count-items
(発見など::he
TabTab...)
:call
か?あなたの質問はそれについて言及していませんでした。
:h functions
;)
getpos()
(入力としてマークを受け入れ、行番号を含む位置を返すことができます)そして少しの減算。
:perl $curbuf->Count
(行数を返します)
オプションを設定しますshowcmd
(:h 'sc'
)を選択されている行数を知るために何も入力する必要がなくなります。最初は、このオプションを設定したことを忘れたため、質問のポイントがわかりませんでした。^^ '
それ以外の場合、プログラムでその番号を取得する場合は、次のようにします。
:echo line("'>") - line("'<") + 1
範囲関数内から、によっても取得できa:lastline-a:firstline+1
ます。(:h function-range-example
)
'<,'>s///n
1文字短くなります。:-)
視覚的な選択の行数を知りたいだけの場合は、通常、それをヤンクします(ヒットy
)。選択のタイプに応じて、「5行がヤンクされました」または「5行のブロックがヤンクされました」と表示されます。