win-switch 20161009.927(in MELPA)
fast, dynamic bindings for window-switching/resizing

概要

たくさんウィンドウを分割する人にとって、
次のウィンドウに切り替える C-x o
とてつもなく使いづらいです。

それを解決するためには、これまで2つの方法がありました。

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(レビュー) もおすすめです。

20150221083126.png
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

本サイト内の関連パッケージ


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。