すべての行にコマンドを適用する方法は?


19

文書内のすべての行をインデント>Gする場合は、入力して現在の行以下>ggに適用し、続いてとを上の行に適用します。

>すべての行に一度に適用するために使用できる組み合わせはありますか?

回答:


19

ファイル全体の:>コマンドと1,$%略して)の範囲を探しています。

:%>

詳細については、以下を参照してください。

:h :>
:h :range

5
この質問のタイトル(「すべての行にコマンドを適用する」)のため、>この回答ではCommand-modeコマンドを使用しているのに対し、質問の例ではNormal-mode演算子に言及していることに注意する価値があります:>。厳密に言えば、これらは同じものではありません。それらが同じ名前を持っていることは偶然と見なされるべきです。一般に演算子とコマンドを交換できると想定しないでください。たとえば、gUオペレーターはテキストを大文字に変換しますが、バッファー全体に同じものを適用する有効なコマンドで:%gUはありません
tommcdo


3

通常モードを終了することなく、次のことができます。

gg>G

2
ここでの欠点は、ファイル内の自分の位置を失うということです
TankorSmash

他のすべての回答はその欠点を共有しており、OPは要件として「カーソル位置を尊重する」ことに言及していません。
ロメインル

1
<コ>は、あなたの前の位置に戻るために使用することができます@ romainlのソリューションは、他のは一度だけ戻って必要としながら、二回戻ってする必要があります
ブレットYを

自分の居場所を維持することの価値と、その地位を維持する答えがどのように価値があるのか​​をきっと理解できます。
TankorSmash

1
だからこそ、それは支持されないのです。どこかにもっと良い選択肢があり、見続けるべきであると言っているだけです。たとえば、プログラミングSEサイトでは、問題を解決するずさんなコードが問題を解決しますが、問題を解決して見栄えの良い別のソリューションを見つけることを期待しています。
TankorSmash

3

まだ言及されていない別のオプション:

:g/^/>

これにより>、パターンに一致するすべての行でコマンドが実行されます^

欠点は、検索履歴が上書きされることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.