Emacsで画面分割のキーバインドを変えた
環境
本題
Emacsで画面分割(ウィンドウ分割)をするショートカットはデフォルトではC-x 2
とC-x 3
に割り当てられているが、これは直感的じゃないし覚えづらいので自分でキーバインドを当てた。
以下のelispを書いた。
;;---------------------------------------------------------------------------- ;; # 画面分割 ;;---------------------------------------------------------------------------- ;; C-x | で右にウィンドウを開いてカーソル移動 (define-key global-map (kbd "C-x |") (kbd "C-x 3 C-x o")) ;; C-x - で下にウィンドウを開いてカーソル移動 (define-key global-map (kbd "C-x -") (kbd "C-x 2 C-x o")) ;; C-x l で右のウィンドウに移動 (define-key global-map (kbd "C-x l") 'windmove-right) ;; C-x h で左のウィンドウに移動 (define-key global-map (kbd "C-x h") 'windmove-left) ;; C-x j で下のウィンドウに移動 (define-key global-map (kbd "C-x j") 'windmove-down) ;; C-x k で上のウィンドウに移動 (define-key global-map (kbd "C-x k") 'windmove-up) ;; C-x w で現在カーソルがあるウィンドウを削除 (define-key global-map (kbd "C-x w") (kbd "C-x 0")) ;; C-x q で現在カーソルがあるウィンドウ以外のウィンドウを全て削除 (define-key global-map (kbd "C-x q") (kbd "C-x 1"))
C-x |
で画面を縦に分割、C-x -
で横に分割するようにした。さらに分割後に分割したウィンドウにカーソルを移動するようにした。
さらにC-x l
で右のウィンドウに移動、C-x h
で左のウィンドウに移動、C-x j
で下のウィンドウに移動、C-x k
で上のウィンドウに移動するようにした。Vimライクなキーバインドになっているのは、かつてVimを使っていた自分にはわかりやすいから。
そして、C-x w でカレントウィンドウを消し、C-x q でカレントウィンドウ以外を全て消すようにした。
所感
elispよくわからないまま書いているせいで手探り感半端ない。自然と少しずつ慣れていければいいなあ。