smartparens-bindings の変更


Smartparens で提供されているキーバインドは少し合わないので一部変更する。
また (setq sp-navigate-interactive-always-progress-point 1) を有効にする方が自分の感覚に合う。

※ C-M-f は sp-next-sexp の方が良いと思うのだがどうだろうか?

command paraedit smartparens Custom comments
sp-forward-sexp C-M-f C-M-f
sp-backward-sexp C-M-b C-M-b
sp-up-sexp C-M-n C-M-e C-M-u means forward up
sp-backward-up-sexp C-M-u C-M-u C-M-p
sp-down-sexp C-M-d C-M-d means forward down
sp-backward-down-sexp C-M-p C-M-a C-M-n
sp-beginning-of-sexp C-S-d C-S-a "C-S-b" is better?
sp-end-of-sexp C-S-a C-S-e
sp-beginning-of-next-sexp none C-S-n
sp-beginning-of-previous-sexp none C-S-p
sp-forward-symbol M-S-f
sp-backward-symbol M-S-b
sp-next-sexp C-M-n M-S-n
sp-previous-sexp C-M-p M-S-p
sp-forward-slurp-sexp C-) C-)
sp-backward-slurp-sexp C-( C-(

実際の設定

 (with-eval-after-load 'smartparens
    (setq sp-navigate-interactive-always-progress-point 1)
    (sp-use-smartparens-bindings)
    (bind-keys :map smartparens-mode-map
               ("C-M-u" . sp-up-sexp)
               ("C-M-p" . sp-backward-up-sexp)
               ("C-M-n" . sp-backward-down-sexp)
               ("C-S-a" . sp-beginning-of-sexp)
               ("C-S-e" . sp-end-of-sexp)
               ("C-S-n" . sp-beginning-of-next-sexp)
               ("C-S-p" . sp-beginning-of-previous-sexp)
               ("M-N"   . sp-next-sexp)
               ("M-P"   . sp-previous-sexp)
               ("M-C" . sp-wrap-round)
               ("C-)" . sp-forward-slurp-sexp)
               ("C-}" . sp-forward-barf-sexp)
               ("C-(" . sp-backward-slurp-sexp)))