
私は、正規表現パターンをパラメータとして受け取り、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.