C/C ++で最も内側の範囲を選択する

私は、現在のブロックスコープをマークすることができるようにしたいと思います。言い換えれば、次のようなコードがあるとします。

...
if (1) {
  ...
}
...

私のカーソルがif-bodyのどこかに座っていると、そのコード領域にマークが付きます。私は迅速かつ汚れた解決策は、直前の中括弧をスキャンして、それとそのマッチの間のすべてを選択することだと思います。

これに対して既存のコマンドがない場合、誰かがそれを実装する方法を知っていますか?

2
追加された
ビュー: 5

2 答え

私がやる方法は次のとおりです: M-C-u M-C-SPC :最初の up-list

1
追加された

私のセットアップで M-x mark-defunc-mark-functionC-M-h

そうでない場合は、 展開領域 を選択することも非常に有効です(動画デモはこちらをご覧ください。そのパッケージがインストールされていれば(MELPAから利用可能です)、コマンド er/expand-region を使用して、選択された領域を意味単位で展開することができます。最初の呼び出しで必要な領域は選択されないかもしれませんが、呼び出しを繰り返すことによって、必要なものが確実に得られます。そのパッケージは素晴らしいですし、多くの異なるモード(つまり、意味単位とみなされるものはモードごとに異なります)で知的に動作します。

1
追加された