- win-switch 20161009.927(in MELPA)
- fast, dynamic bindings for window-switching/resizing
概要
たくさんウィンドウを分割する人にとって、
次のウィンドウに切り替える C-x o は
とてつもなく使いづらいです。
それを解決するためには、これまで2つの方法がありました。
- C-tなどの1ストロークのキーに other-window を割り当てる
- smartrep.elやhydra.el(比較レビュー)など で連続実行させる
3番目の方法として、この win-switch.el も加えてください。
これは名前とうらはらにウィンドウを切り替えるだけでなく、
分割とリサイズまでやってしまいます。
もちろん、smartrepやhydraでもたくさんのキーを
連続実行可能キーに登録してしまえば可能ですが、
win-switch.elでは タイマー が設定してある点が優れています。
デフォルトではC-x oとそれに伴うキーを操作してから0.75秒秒経過すると
win-switch用の操作が無効になります。
smartrepやhydraでは時間経過しても連続実行キーを受け付けるので
ウィンドウ操作後にキーそのものの文字を入力しようとしても
連続実行のコマンドが実行されてしまいます。
これはストレス以外の何物でもありません。
このパッケージは説明文がめちゃくちゃ長いですが、
一番簡単な使い方はC-x o o ...とoを連続的に
押すだけで次々とウィンドウを切り替えてくれます。
そしてウィンドウを切り替えた後すぐに他の操作に移れます。
これだけでもかなり便利ですが、
本設定ではvi風のhjklで左右上下のウィンドウに切り替えたり、
HJKLでウィンドウのリサイズを行えるようにしています。
ウィンドウ多分割派にはowdriver.el(レビュー) もおすすめです。
Fig1: こんなに分割してても安心!
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてwin-switchを使う方は
以下のコマンドを実行します。
M-x package-install win-switch
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name win-switch
設定 150221075044.win-switch.el(以下のコードと同一)
(require 'win-switch) ;;; 0.75秒間受け付けるタイマー (setq win-switch-idle-time 0.75) ;;; 好きなキーを複数割り当てられる ;; ウィンドウ切り替え (win-switch-set-keys '("k") 'up) (win-switch-set-keys '("j") 'down) (win-switch-set-keys '("h") 'left) (win-switch-set-keys '("l") 'right) (win-switch-set-keys '("o") 'next-window) (win-switch-set-keys '("p") 'previous-window) ;; リサイズ (win-switch-set-keys '("K") 'enlarge-vertically) (win-switch-set-keys '("J") 'shrink-vertically) (win-switch-set-keys '("H") 'shrink-horizontally) (win-switch-set-keys '("L") 'enlarge-horizontally) ;; 分割 (win-switch-set-keys '("3") 'split-horizontally) (win-switch-set-keys '("2") 'split-vertically) (win-switch-set-keys '("0") 'delete-window) ;; その他 (win-switch-set-keys '(" ") 'other-frame) (win-switch-set-keys '("u" [return]) 'exit) (win-switch-set-keys '("\M-\C-g") 'emergency-exit) ;; C-x oを置き換える (global-set-key (kbd "C-x o") 'win-switch-dispatch)
実行方法
$ wget http://rubikitch.com/f/150221075044.win-switch.el $ emacs -Q -f package-initialize -l 150221075044.win-switch.el
本サイト内の関連パッケージ
- owdriver - Quickly perform various actions on other windows
- ace-window - Quickly switch windows.
- window-numbering - Numbered window shortcuts
- switch-window - A *visual* way to choose a window to switch to
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。