Emacsでウィンドウ移動をCtrl+TabとCtrl+Shift+Tabでする方法

  • 12
    Like
  • 0
    Comment
More than 1 year has passed since last update.

はじめに

今日久しぶりにEmacsの設定をしてましたが、やっぱ奥がめっちゃ深いですね
grepで止まっていた私には ag だの wgrep などスゲー!とかなる話ばかりで面白かったです
それ以外にウィンドウ切り替えの設定もしたので、その際のメモをこちらに残しておきます

Emacsでウィンドウ移動を快適にする

そろそろEmacsのウィンドウについて一言いっとくか
こちらに紹介されている方法はとてもすばらしくて Ctrl+t を押すだけでウィンドウが1つのときは自動で1個作ってくれて、複数あったらウィンドウ切り替えをしてくれます

私の場合は、普段ブラウザや iTerm では Ctrl+Tab でタブ or ウィンドウの切り替えをしているため
まずこのキー設定を変えてみました
これだけでも便利ではあるのですが3つ以上のウィンドウがあったときは逆順に選択していくのも欲しくなるので Ctrl+Shift+Tab で実現できるようひと工夫加えてみました

(defun other-window-or-split (val)
  (interactive)
  (when (one-window-p)
;    (split-window-horizontally) ;split horizontally
    (split-window-vertically) ;split vertically
  )
  (other-window val))

(global-set-key (kbd "<C-tab>") (lambda () (interactive) (other-window-or-split 1)))
(global-set-key (kbd "<C-S-tab>") (lambda () (interactive) (other-window-or-split -1)))

紹介されていた other-window-or-split の関数定義に引数を加えて Ctrl+Shift+Tab をしたときには other-window の引数に -1 を渡して逆順に遷移させています
デフォルトの分割については縦・横好きなほうを使うといいと思います

おわりに

helm も使い始めたいのですが、何故か first というのでエラーが出て helm-ag が使えなくて困ってます。。。
しばらくは ag にお世話になりそうです