EmacsでPHPStormライクな一行コピー、一行カット、一行複製のキーバインドを書いた

環境

本題

ここ1年ほどは専らPHPStormを使っている。 最近MacBookAirの元気がなくなってきて、GB単位でメモリを喰うPHPStormに対して若干怖れの念を抱くようになってきたので、Emacsを使い始めたという話である。

さて、PHPStormの一行コピー、一行カット、一行複製を好んで使っていたのでEmacsでも実現させてみようと思った。

以下のelispを書いた。

;;----------------------------------------------------------------------------
;; # デフォルトのキーマップ無効化
;;----------------------------------------------------------------------------
(global-unset-key "\C-j") ;; 今回は関係ない
(global-unset-key "\C-q")
(global-unset-key "\C-t")  ;; 今回は関係ない

;;----------------------------------------------------------------------------
;; # 編集まわり
;;----------------------------------------------------------------------------
;; C-q c で一行コピー
(define-key global-map (kbd "C-q c") (kbd "C-a TAB C-SPC C-e M-w"))
;; C-q x で一行カット
(define-key global-map (kbd "C-q x") (kbd "C-a TAB C-SPC C-e C-w"))
;; C-q d で一行複製
(define-key global-map (kbd "C-q d") (kbd "C-a TAB C-SPC C-e M-w C-e RET C-y"))

C-q cで一行コピーである。これはPHPStormのCmd-cに該当する。

C-q xで一行カット。これはPHPStormのCmd-xに該当する。

C-q dで一行複製。これはPHPStormのCmd-dに該当する。

ちなみに、C-j, C-q, C-t は今後任意のキーバインドを当てるためにデフォルトのバインドを解除している。(参考: Emacsでキーバインドの割当変更について - Boost Your Programming!)

今回は C-qを利用した。

所感

PHPStormは非常に良く出来ていてこのうえなく使いやすいIDEである。年間1万円するだけあるね。

そしてPHPStormを使っていると、逆にEmacsVimといったエディタにどのような機能があれば快適にコードが書けるのかといったことが自分の中でまとまっていく気がする。

それらをEmacsで実現すれば同様に快適なエディタが出来上がるのではないかと、今胸を踊らせている。