開始前にviで検索を初期化する

開始前にviで検索を初期化する

私は、正規表現パターンをパラメータとして受け取り、2000 以上のファイルを検索する、自分で書いた小さなプログラムを使用しています。ファイルはディレクトリ階層内にあります。

パターンは複数のファイルに存在でき、また任意のファイル内で複数回出現できます。パターンが出現するファイル名と行を見つけた後、プログラムは最初の行番号と見つかったすべてのファイル名viを で呼び出し+lineます。

今はすべて動作しますが、かつては+line各ファイル ( vi +2 x1 +5 x2) を指定しようとしましたが、カーソルは の 5 行目x1と の 1 行目に配置されx2、これは私が望んでいたことではないため、そのアイデアは破棄しました。

パターンは複雑な場合が多く、2 回入力したくないので、 の次の行を検索するときにコピー アンド ペーストを使用することがあります。パターンで検索履歴viを設定して、再入力やコピー アンド ペーストを行わずに+ +を使用してすべてのパターンを検索できるようにできれば便利です。その後、 を使用して次のファイルに移動し、パターンの使用を継続できます。vi/Return:n!

パターンは.viminfoディレクトリに保存されているようです。開始する前にそのファイルを更新するだけでよいのでしょうかvi、それともそれを実行するためのライブラリまたはコマンドライン ユーティリティがあるのでしょうか?

答え1

ファイルにパッチを適用する必要はありません~/.viminfo

使用しているように、コマンドライン オプションvimを使用して+/pattern、パターンの行にカーソルを移動できます。その後、 を使用してn次の出現箇所に移動できます (行の先頭でない場合は最初の出現箇所になり、そうでない場合は 2 番目の出現箇所になります)。

マニュアル ページには、カーソルはパターンの最初の出現箇所にあると書かれていますが、私の経験では、そのパターンを含む行の最初の文字にあります。ページから引用しますvim man

+/{pat}     For  the  first  file the cursor will be positioned on the
            first occurrence of {pat}.  See ":help search-pattern" for
            the available search patterns.

関連情報