insert-parenthesesというデフォルトで "M-("にバインドされている
コマンドがあります. "M-("と入力すると "()"を挿入, "M-1 M-("の
ようにすると現在位置と 1単語分進んだ位置を括弧で囲うという挙動です.
M-2, M-3とするとそれだけの単語分進んだ位置を囲んでくれます.
気になる点
paredit-modeを使っている人はわかると思うのですが, "M-("が
"M-1 M-("の挙動であって欲しいところです. ただ単に対となる
括弧が挿入したければ, autopairや smartparensを使えば済む
だけの話なので, それと "M-("を同じ挙動にしておくのはもったい
ないと思います.
修正
なので, "M-("を "M-1 M-("相当にしておくと便利だと思うので
そのような関数を作成してみました.
(custom-set-variables '(parens-require-spaces nil)) (defun my/insert-parentheses (arg) (interactive "P") (insert-parentheses (or arg 1))) (global-set-key (kbd "M-(") 'my/insert-parentheses)
余分な空白を挿入しないように parens-require-spacesは nilに
設定しておくとなおよいと思います.
おわりに
"M-("の改善案について示しました.