ほとんどの人が知っていると思いますが、%
行の前方を検索して、次の対のブレース/ブラケット/括弧を見つけ、一致するパートナーに移動します。
|a|rray[index] = value;
" |e| is the cursor; hit %:
array[index|]| = value;
行を逆方向に検索する同様のキーがあることを願っています。例:
array[index] = value|;|
" |;| is the cursor again, hit the key I'm looking for:
array|[|index] = value;
ほとんどのvimコマンドには逆方向と順方向の両方があるので、そうする必要があるようです。パートナーはいませんか?もしそうなら、それはonのペアの文字になると、それらは同じように機能するからですか?
reallyで一致する一般的な文字を後方検索する場合は、次のvim
固有のコマンドのいずれかを使用できます。
[(
...(前の一致しない(
文字に移動)[{
...(前の一致しない{
文字に移動)これらの2つのコマンドには、一致する転送パートナーがあります。
])
...(次の一致しない)
文字に移動)]}
...(次の一致しない}
文字に移動)#ifdef
とCコメントには、他にも同様のコマンドがあります。
コマンド:help %
を使用すると、vim
で詳細を見つけることができます。
%一致するブラケットを見つけます。したがって、(または{の場合、前方に検索されます。
}または)を使用している場合は、逆方向に検索されます。
%は方向性がなく、一致するブラケットを見つけるだけです。
:map ^] ^%%
を試しました(^]
= Ctrl+vCtrl+5 ここでは、%
=との類比として Shift+5)。
与えられた特定のケースで機能しますが、カーソルから後方に検索しないため、常に行の最初の左括弧を選択し、一致が見つからない場合はカーソルを行の先頭に残します。
これはより良いソリューションです。それは醜く、おそらく単純化する余地はたくさんありますが、セマンティクスは正確だと思います(開いている括弧がない場合はカーソルを移動せず、現在の列の前にfirst開いている括弧に移動します) )。
:map ^] ^[:call search("[({[]", "bes", line("."))^M
for
^]
= Ctrl+vCtrl+5^[
= Ctrl+vEsc^M
= Ctrl+vReturn