回答:
%
コマンドは、カーソルの下にある項目の試合にジャンプします。カーソルを開始(または終了)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.
デフォルトでは、「アイテム」には、角かっこ、中かっこ、括弧、Cスタイルのコメント、さまざまなプリコンパイラステートメント(#ifdef
など)が含まれます。
Vimホームページにある「拡張%マッチング」のプラグインがあります。
コマンドモードに%
入ると、関連するモーションコマンドに関するドキュメントを読むことができ:help various-motions
ます。
ビジュアルモードでさまざまなテキストオブジェクトを選択するために使用できるモーションコマンドの別のセットがあります。
特定の問題を解決するには、次のようにします。
printf("%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32)));
^
カーソルがにあるとします^
。次のシーケンスを入力して、探している部品を選択します。
v2a)
最初v
にビジュアルモードに入り、次に2
括弧のレベルを上げることを指定します。最後に、a)
「ブロック」を選択します。その後、d
またはなどx
を使用して削除できます。
外側の括弧を含めたくない場合は、代わりに「内側のブロック」を使用できます。
v2i)
:help object-select
関連するコマンドの完全なリストについては、を参照してください。
a
「a」ではなく「around」を意味すると思っていました。それが「内側」をよりよく補完するように感じます。Vimについて何か新しいことを学ばないことで1日が過ぎることはありません。
dab
=> ブロック(括弧を含む)を削除します
かっこ内にあるものをすべて削除するには、いつでもdi(
とその派生物を発行できます。
注意 :
@porglezombがコメントで提案したように、括弧を含めるa
にはi
(「内側」)の代わりに(「と一緒に」)を使用できます。だから、使用して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))'
a
、の対応部分として話しているメモを追加する必要i
があります。
%
この問題を「誤用」することはできますが、これには時間がかかります。私の意見では、より複雑なシナリオでのみ使用する必要があります。特定のスコープ内で何かを削除することは、まさにユースケースdi
です。
カーソルを最初の括弧に置き、v%y
またはを押しv%d
ます。
ci [block-surrounder]をお試しください
あなたのケースでは、ハイライトした2つの括弧の間のどこかにカーソルを置き、キーを試してください:ci(
以下のような答えデビッドノーマンの言います、
v%y
またはを押しv%d
ます。http://vimdoc.sourceforge.net/htmldoc/vimindex.htmlからの説明:
通常モードでのタグ文字注記アクション -------------------------------------------------- ---------------------------- | v | v文字ごとのビジュアルモードを開始する |%| %1は次の(中/四角)括弧を検索します この行とそのマッチに行くか、に行く 一致するコメントブラケット、または一致に移動 | d | ["x] d {motion} 2 Nmoveテキストを削除[バッファxへ]
つまり、2つの角かっこ(%
)を含むすべてを選択し、選択を視覚的に表示(v
)してから、ヤンク/コピーy
または削除/カットd
します。(デフォルトのバッファに。)
を使用して貼り付けることができp
ます。
「自分に魚を教える」という答えを出しました。