emacs win-switch.el : 【3分割以上している人必見】ウィンドウを瞬時に切替・分割・リサイズ! | MELPA Emacs Lisp Elisp パッケージ インストール 設定 使い方 スクリーンショット

パッケージ名 win-switch
概要(原文) fast, dynamic bindings for window-switching/resizing
リポジトリ MELPA
取得先 https://github.com/genovese/win-switch
バージョン 20150208.1911
関連記事 package:win-switch package:switch-window package:ace-window package:owdriver

たくさんウィンドウを分割する人にとって、
次のウィンドウに切り替える 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: こんなに分割してても安心!

win-switch インストール

このパッケージはmelpaにあるので パッケージの初期設定 を行ってください。

M-x package-refresh-contents
M-x package-install 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

本サイトは、広大なるEmacs界の道具としてあなたの役に立ちたいという純粋な奉仕で運営しています。 掲載しているコードは複写・転載など自由に使っていただいて構いません。 改良・MELPAパッケージ化していただけると最高に嬉しいです。

もし、うまく動作しないのならば rubikitch __at__ ruby-lang __dot__ org までメールしてください。

[応援お願いします]


このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

タグ

トラックバック&コメント

この投稿のトラックバックURL:

トラックバック

コメント


コメントをどうぞ

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このページの先頭へ