smartparens
smartparens
s-c にhydraを用意した。
(leaf *hydra-cursor
:doc "Move cursor effectively"
:bind ("s-c" . *hydra-cursor/body)
:after smartparens
:pretty-hydra
((:title "➤ Smart Cursor" :color blue :quit-key "q" :foreign-keys warn :separator "╌")
("Sexp"
(("a" sp-beginning-of-sexp "Begin" :exit nil)
("e" sp-end-of-sexp "End" :exit nil)
("d" sp-down-sexp "Down" :exit nil)
("u" sp-up-sexp "Up" :exit nil)
("D" sp-backward-down-sexp "Down backward" :exit nil)
("U" sp-backward-up-sexp "Up backward" :exit nil)
("n" sp-next-sexp "Next" :exit nil)
("p" sp-previous-sexp "Previous" :exit nil)
("F" sp-forward-sexp "Forward" :exit nil)
("B" sp-backward-sexp "Backward" :exit nil))
"Symbol"
(("f" sp-forward-symbol "Forward" :exit nil)
("b" sp-backward-symbol "Backward" :exit nil))
"Wrap"
(("(" wrap-with-parens "() parens" :exit nil)
("[" wrap-with-brackets "[] brackets" :exit nil)
("{" wrap-with-braces "{} braces" :exit nil)
("'" wrap-with-single-quotes "'' single quotes" :exit nil)
("\"" wrap-with-double-quotes "\"\" double quotes" :exit nil))
"Unwrap"
(("," sp-backward-unwrap-sexp "Backward" :exit nil)
("k" sp-kill-sexp "Kill" :exit nil)
("." sp-forward-unwrap-sexp "Forward" :exit nil))
"Expand"
(("+" sp-forward-slurp-sexp "Expand" :exit nil)
("-" sp-forward-barf-sexp "Shrink" :exit nil)))))正直、カーソルの移動系はnativeとの違いが分からないのが多かった。 以下は見たことがない動きなので使えるかも。
sp-next-sexp(C-M-nにもバインド)sp-previous-sexp ( =C-M-pにもバインド)
wrap-xxxはこちらの defcustom を使わせて頂いた。 C-SPC で選択した範囲を囲うのと併せて、使う機会は多そう。