質問
Cで次のコード行を指定:
printf("%3.0f \ t%6.1f \ n"、fahr、((5.0 / 9.0)*(fahr-32)));
最初の太字の括弧から対応する括弧まで削除またはヤンクする方法はありますか? df)について考えましたが、それは9.0の直後にしか到達できません。
改行に関係なく、一致するブレース間ですべてを取得するための同様の方法がありますか?
解決
さまざまなモーション:%
%
コマンドは一致にジャンプしますカーソルの下のアイテムの。開始(または終了)括弧にカーソルを置き、ヤンクには y%
を使用し、カーソルから一致する括弧にすべてを削除するには d%
を使用します。
これは、%
が「モーションコマンド」であるため機能します。したがって、vimがそのようなコマンドを予期する場所であればどこでも使用できます。 :help y
から:
["x]y{motion} Yank {motion} text [into register x]. When no
characters are to be yanked (e.g., "y0" in column 1),
this is an error when 'cpoptions' includes the 'E'
flag.
デフォルトでは、" item"括弧、中括弧、括弧、Cスタイルのコメント、さまざまなプリコンパイラステートメント( #ifdef
など)が含まれます。
「拡張%マッチング」用のプラグインがあります Vimホームページで見つけることができます。
%および関連するモーションコマンドに関するドキュメントを読むことができます。 「noreferrer」> :コマンドモードでさまざまなモーションを支援
。
object-select
さまざまなテキストオブジェクトを選択するためにビジュアルモードで使用できるモーションコマンドの別のセットがあります。
特定の問題を解決するには、次を実行します。
printf("%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32)));
^
カーソルが ^
にあるとしましょう。次のシーケンスを入力して、探しているパーツを選択します。
v2a)
最初の v
はビジュアルモードに入り、次に 2
レベルの括弧に移動することを指定します。最後に、 a)
が「a block」を選択します。その後、 d
または x
を使用して削除などを行うことができます。
外側の括弧を含めたくない場合は、「内側ブロック」を使用できます。代わりに:
v2i)
:help object-select
関連コマンドの完全なリスト。
他のヒント
括弧内のすべてを削除するには、いつでも di(
とその派生物を発行できます。
注:
コメントで@porglezombが示唆したように、 i
(" inside")の代わりに a
("と一緒に)を使用して括弧を含めることができます。したがって、 da(
を使用すると、(
および)
を含む(
および)
内のすべてが削除されます。
括弧のすぐ外側のペア内のテキストの削除:
したがって、このコード行について
printf("%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32)));
^ ^
| |
\_______\___---> Cursor range
カーソルが上記のカーソル範囲内にあると仮定すると、次のコマンドを発行できます。
di( --> Deletes '5.0/9.0'
ci( --> Substitutes '5.0/9.0'
yi( --> Yanks '5.0/9.0'
括弧の外側のn番目のペア内のテキストの削除:
n番目の外側の括弧内のすべてを取得するには、上記のコマンドの前に n
を追加します。したがって、上記と同じカーソル位置で、
2di( --> Deletes '(5.0/9.0) * (fahr-32)'
2ci( --> Substitutes '(5.0/9.0) * (fahr-32)'
2yi( --> Yanks '(5.0/9.0) * (fahr-32)'
3di( --> Deletes '"%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32))'
3ci( --> Substitutes '"%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32))'
3yi( --> Yanks '"%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32))'
削除にはd%を、ヤンクにはy%を使用できます。
最初の括弧にカーソルを置き、 v%y
または v%d
を押します。
ci [block-surrounder]を試してください
あなたの場合、ハイライトした2つの括弧の間のどこかにカーソルを置き、キーを試してください:ci(
デビッド・ノーマンの回答によると、
最初の括弧にカーソルを置き、 v%y
または v%d
を押します。
http://vimdoc.sourceforge.net/htmldoc/vimindex.htmlからの説明a>:
tag char note action in Normal mode ------------------------------------------------------------------------------ |v| v start characterwise Visual mode |%| % 1 find the next (curly/square) bracket on this line and go to its match, or go to matching comment bracket, or go to matching |d| ["x]d{motion} 2 delete Nmove text [into buffer x]
これは、2つの角かっこ(%
)を含むすべてを選択し、選択を視覚的に表示( v
)してからヤンク/コピー y
または d
を削除/カットします。 (デフォルトのバッファーへ。)
p
で貼り付け/貼り付けができます。