2011-08-31 20 views
55

範囲内のラインを数えたいと思いますが、ビジュアルブロックとしましょう。 これを行う最短の方法は何ですか。私の心に来るのは次のようなものです:'<,'>s/.//n しかし、私はそれが最短の方法だとは思わない。選択した範囲のビンカウントライン

だから、誰かが私にヒントを与えることができますか?前もって感謝します。ビジュアルモードで

答えて

99

、プレスグラムC-G

典型的出力:

Selected 7 of 22 Lines; 8 of 32 Words; 201 of 491 Chars; 201 of 497 Bytes-- VISUAL LINE --


ソース:he count-items(として発見:heタブタブ ...

+0

素晴らしい!このヒントをありがとう、10分が経過するとすぐに、私はこれを答えとしてマークします)しかし、興味深いことに、vimには機能があります。私はかなりの機能があるはずだと確信しています。 – shabunc

+0

@shabunc:「vimに関数がありますか?」とはどういう意味ですか?あなたは何かできることを意味しますか?あなたの質問には言及していませんでした。 –

+0

他の組み込み関数のように機能します( ':h関数';) – shabunc

5

'<,'>s///nは1つの文字短くなります。 :-)

私は視覚的な選択のライン数を知りたいのであれば、通常はそれをヤンクします(ヒットy)。選択肢のタイプに応じて、「5行がヤンクされた」または「5行がブロックされた」と表示されます。

+2

私はまたその目的のために通常ヤンクしています。そして今日、私は何か新しいことを学ぶべき時だと突然気づいた))) – shabunc

17

オプションをshowcmd:h 'sc')に設定すると、選択するライン数を入力する必要はありません。最初は、このオプションを設定したことを忘れてしまいました。あなたの質問のポイント。 ^^あなたがプログラムでその番号を取得したい場合は

そうでない場合、それは単にです:範囲 - 関数内から

:echo line("'>") - line("'<") + 1 

、それはまた、a:lastline-a:firstline+1によって得ることができます。 (:h function-range-example

関連する問題