ターミナル上の Emacs で C-;とかの普段使えないキーバインドを使えるようにする拡張 xterm-keybinder ですが urxvt にも対応したので、紹介します。といっても README と対して内容変わらないのですが、宣伝しないと誰も使ってくれないので、、、
How it works
単純にターミナルエミュレータのなんかのキーを押したら特定のキーシーケンスを出すという設定をして、Emacs 側でそれを解析するという処理をしているだけです。(ただ hyper と super キーを含めると結構数が多いのでパッケージ化したほうが、便利と思ったので公開しています。)
Install
MELPA から xterm-keybinder でインストールできます。もともとは xterm 用に作りましたが、urxvt の設定を追加した感じです。
以下は emacs 側の設定です。
(require 'cl-lib) (add-hook 'tty-setup-hook '(lambda () (cl-case (assoc-default 'terminal-initted (terminal-parameters)) (terminal-init-rxvt (when (getenv "COLORTERM" (selected-frame)) (urxvt-keybinder-setup))))))
あとは
urxvtd -q -o -f
で urxvt をデーモン起動して
# xterm-keybinder.el と同じディレクトリに emacs-urxvt-client と # いうのがついてきます。 emacs_urxvt_client=/path/to/emacs-urxvt-client \ ${emacs-urxvt-client} -e emacscliet -t &
のようなシェルスクリプトを書いて適当に起動してください。
emacs-urxvt-client の部分は単純なシェルスクリプトなので、そこに書いてある urxvt の設定を読み込めさえすれば自分が書いたのは使う必要はありません。自分で書きたい人は`urxvt-keybinder-insert`関数を使うとそれ用の設定が挿入されるので使ってみてください。
何が便利か
Emacs は拡張できるのが売りなのに結構空いてるキーバインドがないんですよね、そんななか、ターミナル上の Emacs はさらに使えるキーバインドが制限されるので空いてるキーバインドが足りないという方には便利だと思います。
0 件のコメント:
コメントを投稿