特定の行番号間の文字列を検索するにはどうすればよいですか?


15

これは私が最近抱えていた問題です。数百行のテキストを含むファイルがあります。2つの特定の行番号の間の文字列を検索するにはどうすればよいですか?たとえば、行番号100〜325を検索したい。

回答:


7
:100,235g/foo/#<CR>

次に、を押し:147<CR>て目的の行にジャンプします。

以下も使用できます:ilist

:100,235il foo<CR>

参照してください:help range:help :global:help :ilist


5

特定の行間を検索する別の方法があります。

/%>{linenumber}l\%<{linenumber}{pattern}

例:

/%>199l\%<300lgood

これにより、200行目から299行目までのパターン「good」が検索されます。

%>199l - l is for line, >199 denotes the lines greater than 199

2
100GV325G<esc>
/\v%Vpattern
  • 100GV325G<esc>100から325までの行を視覚的に選択し、normalモードに戻ります。
  • /\v%Vpattern:h /\%V検索範囲を最後の視覚領域に制限するために使用します。

パターンに改行が含まれる場合、別の\%Vパターンを追加して、視覚領域のパターンの終了を制限する必要があります。

100GV325G<esc>
/\v%Vpattern%V
  • :h /\%V

1

関数/メソッド内で特定のシンボルを検索する必要がある場合があります

  void f(bool b)
  {
    b;
    b;
  }

  void g(bool b)
  {
    b;  
    b;  
    b;  
    b;  
  }

bf()のみ検索するには:

  • 行く{f()
  • で視覚モードに入る V
  • f()「%」で終わりに行きます
  • 「:」コマンドでexec行に移動します。
  • il b取得するためにコマンドライン入力に入ったら :'<,'>il b

<CR>(入力)後

b.cpp
  1:   15     b;
  2:   16     b;
Press ENTER or type command to continue

ViとVimへようこそ!これは、ロメインルの答えとはどう違うのですか?
D.ベンノーブル

ありがとう!第一に、vimに慣れておらず%、ビジュアルモードに精通していない人々が便利だと思うと思います。第二に、行の範囲を明示的に入力する必要はありません。
dmytro.poliarush

1
[OK]を、私は彼らの使用がに関連して、キーがどのように説明することをお勧めilist
D.ベンKnoble
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.