最近、key-chordの設定にはまってます。
key-chordとはキー同時押しでコマンドを実行するelispで、頻繁に使うけど面倒なキーバインドのコマンドに割り当て直すといい感じです。
リージョン選択(松山智大)
—
ありえるえりあ
とかを参考にさせてもらって、半分以上コピペですが今の割り当て状況はこんな感じ。覚えてないのとか使ってないのも結構あるけど…
(key-chord-define-global "jk" 'view-mode) (key-chord-define-global "dw" 'kill-word*) (key-chord-define-global "yw" 'copy-word) (key-chord-define-global "vw" 'mark-word*) (key-chord-define-global "ds" 'kill-sexp*) (key-chord-define-global "ys" 'copy-sexp) (key-chord-define-global "vs" 'mark-sexp*) (key-chord-define-global "dq" 'kill-string) (key-chord-define-global "yq" 'copy-string) (key-chord-define-global "vq" 'mark-string) (key-chord-define-global "dl" 'kill-up-list) (key-chord-define-global "yl" 'copy-up-list) (key-chord-define-global "vl" 'mark-up-list) (key-chord-define-global "nm" 'copy-line) (key-chord-define-global "nj" 'kill-line) (key-chord-define-global "lm" 'mark-line) (key-chord-define-global ",." "<>\C-b") (key-chord-define-global "[]" "{}\C-b") (key-chord-define-global "89" "()\C-b") (key-chord-define-global "w2" "\"\"\C-b") ;; (key-chord-define-global "00" 'delete-window) ;; (key-chord-define-global "11" 'delete-other-windows) ;; (key-chord-define-global "22" 'split-window-vertically) ;; (key-chord-define-global "33" 'split-window-horizontally) (key-chord-define-global "mk" 'kill-buffer) (key-chord-define-global "ql" 'windmove-right) (key-chord-define-global "qh" 'windmove-left) (key-chord-define-global "qj" 'windmove-down) (key-chord-define-global "qk" 'windmove-up)
上のリンク先を読んでもらえるとわかりますが、kill-word*からmark-up-listのコマンドはthing-opt.elのインストールが必要です。
"00"や"11"は誤爆の危険性が高いので保留。なにかいいのないかなー。
あとcopy-lineだと改行が入るから、これもそのうち変更したい。vimの行コピーって改行はどうなっているんでしょう。
<>や""といったカッコ系はカーソルも戻してるので便利です。「対応するカッコ自動で挿入してたらいらないよね?」と言われたらそれまでなんですけど。。
まぁこんな素敵なkey-chordですが、設定しまくっている人が少ないのか、探し方が悪いのか、ネットで設定があんまり公開されていないのが残念です。紹介記事は多いのですが。ということで、みんなもっと公開してほしいなという話でした。