
次の形式のブロックがあります。
String that is not supposed to be enclosed in quotes
String that is supposed to be enclosed in quotes
String that is not supposed to be enclosed in quotes
String that is supposed to be enclosed in quotes
String that is not supposed to be enclosed in quotes
String that is supposed to be enclosed in quotes
String that is not supposed to be enclosed in quotes
String that is supposed to be enclosed in quotes
引用符で囲む必要があることを示す行を引用符で囲む必要があります。
String that is not supposed to be enclosed in quotes
"String that is supposed to be enclosed in quotes"
String that is not supposed to be enclosed in quotes
"String that is supposed to be enclosed in quotes"
String that is not supposed to be enclosed in quotes
"String that is supposed to be enclosed in quotes"
String that is not supposed to be enclosed in quotes
"String that is supposed to be enclosed in quotes"
Vimでこれを行う半自動方法はありますか?考えられる解決策にはg
コマンドを含めることができると思います。
答え1
正規表現を使用してください。
:%s/.*is supposed.*/"&"/
「半自動」が各置換の前にメッセージを表示したい場合は、/c
交換パターンに修飾子を追加するだけです。
:%s/.*is supposed.*/"&"/c
説明する
:%s
この代替項目を現在のバッファのすべての行に適用することを意味します。- 私たちが一致するパターンは、単語を含むすべての行です
is supposed
(他の行に「is Should」という単語が含まれ、「to be return in quote」が続く場合は、いつでもパターンを次のように変更できます)。.*is supposed to be enclosed in quotes.*
- 一致するパターンを置き換えるために使用する文字列は、一致するパターンを表す
"&"
位置です。&
答え2
有名なサラウンドサウンドプラグインこのプロセスをすばやく簡単に実行できるように、さまざまなマッピングが提供されています。インデントなしで行全体を引用するには、次のようにテキストテキストに一致するすべての行に自動的に適用yss"
できます。:global
:normal
:g/is supposed/normal yss"
または、一致する行を検索してn
次の手順を繰り返します。.
答え3
私はほぼ常にマクロを使用して代替を検索することを好みます。マクロは、より強力で覚えやすく、ジャンプする前にインタラクティブに確認できるオプションを維持するためです。変更したい最初の行に次のことを試してください(読みやすくするためにESCとENTERの周りにスペースを入れないでください)。
qqI" ESC $bea" ESC /is supposed ENTER zzq
できること:
qq
「q」というマクロを起動します。 (qaは「a」マクロを起動します)I" ESC
「0」のように、行の先頭ではなく最初の単語の前に「」を挿入して、一般的に重要なスペースを維持します。$bea" ESC
行の最後に移動($)してから、1つの単語の後に移動(b)し、もう一度行の最後に移動(e)して最後に(a) "を追加します。これは行の最後の単語にも追加されます。ない末尾の空白が後に続く場合は減らします。/is supposed
編集後、この検索では、複数のページの下にある可能性がある「is Should」の次のインスタンスを検索し、ユーザーが確認して編集を続行するかどうかを判断できるように、その位置にカーソルを置きます。 "should"が見つからない場合、マクロは破損なしで終了します。zzq
現在の行を超えて複数の行を表示できるように、行をページの中央に配置します(zz)。マクロをすばやく適用し、以前のタスクを参照したい場合に便利です。 「q」は、「q」とも呼ばれるマクロの定義を終了します。
使い方:
- 上記のマクロ定義を完了した後、最初の行が変更されました。
- エラーが発生した場合は、行をキャンセルしてやり直してください。
- カーソルは2番目の一致(存在する場合)にあり、ページの中央にうまく配置されます。
- 必要に応じて、@qを使用してこのマクロ(または他の同様のマクロ!)を適用できます。このマクロは行を編集し、3 番目の一致に位置を指定します。
- @@を使用して最後のマクロを再適用できます(@qより高速です)。
- 同時に複数の電話をかけることができます(例:111@@)。マクロの適用中にエラーが発生した場合、そのエラーは繰り返されません。
- または、PageDownと友達を手動でスキップしてマクロを再適用することもできます。
- 他の編集内容と一緒にマクロをインターリーブできます。
- :tabを使用して、このマクロを他のバッファまたはファイルに適用できます。
- パイの上にチェリー:vimを終了した後もマクロが記憶されます!
マクロに慣れれば、驚くべき力を持つでしょう!
答え4
行が実際に次のようになり、どの行であるかを識別する区別された文字列がある場合、正規表現バージョンは機能します。それ以外の場合はログを残すことができます。マクロあなたが欲しいものをしてください。
これを行うには、2行目の先頭に移動して[次へ]をクリックします。
qq I" Escape A" Escape 3j q
これは最初の行を参照し、見て次の行に移動します。その後、@q
を押して、今行ったすべての操作を再度再生するか、5@q
5回実行できます。
動作原理: q
マクロの記録を開始するコマンドで、これを呼び出すこともできますq
(任意の文字を選択できます)。このマクロでは、行の先頭に二重引用符()を挿入して挿入モード(Escape)を終了し、行の末尾に二重引用符I"
()を追加して再挿入モードを終了します。参照する次の行にA"
3行()の下に移動します。マクロの記録を停止します。3j
q
その後、起動した場所に戻り、保存した@
マクロ()を実行してq
次の行に対して再度実行できます。@
たとえば、前に計算するには5@q
複数回実行します。
3j
間隔がやや不規則な場合は、次のものを使用できます}}k
。 2つの段落を下に移動して、次の段落の後の空白行(}}
)とバックアップ(k
)。どちらにしても、マクロの実行は同じです。
実際に目的のタスクを実行し、目的の場所に戻ることができる一連のタスクを記録できます。実行したい手順が実行したいすべての状況で意味がある限り、マクロを起動し、必要な変更をすべて実行した後、次の場所に移動してマクロを停止して繰り返すことができます。