Hatena::ブログ(Diary)

hchbaw記

2010-09-01

ターミナルでC-,やC-.に割り当てたい、rxvt-unicodeで。

ターミナルでC-,やC-.に割り当てたい - (ひ)メモを参考にさしてもらっております。ありがとうございます!

X→ターミナル(xterm等)→アプリ(Emacs等)のとき、

ターミナル経由で直接アプリへ送られないコードをX→ターミナルのところで変換して、ターミナルアプリへと送る。個々のアプリには、変換後の値を使ってキーバインドしてゆくわけですね、なるほど!ほんとう助かります。

というわけで例えば、“C-.”を、Emacs上では'helpに割り当ててみたいなと思います。

urxvt(1)の“keysym.sym”と“RESOURCES”の箇所を参考に、~/.Xdefaults等に、キーシンボル“C-.”へ文字“\033[146~”を結びつけます。

!クラスは、xprop コマンドで調べられますね。
!\033[146~は適当です><
URxvt-ml.keysym.C-0x2e: \033[146~

.emacsに、“\033[146~”でdefine-keyします。

(global-set-key "\033[146~" 'help)

調子にのって、zshにも(^^

bindkey "\033[146~" run-help

rxvt-unicodeの中のEmacsへ“C-.”を打つことで'helpを実行できるようになったー!

(ミニバッファへの入力の時等に"146~"と入力されちゃうのだけれども、ガマンしています…)

もともと“C-.”に割り当てられている機能を呼び出したい。

さて次に、ターミナル経由では直接Emacsへ送られることのない、もともと“C-.”に割り当てている機能を呼び出したいと思います。

(global-set-key (kbd "C-.") 'help) ;; もともと割り当てられているとします。
(global-set-key "\033[146~" (kbd "C-."))

と、キーボードマクロあつかいにしてみたのだけれども、'helpの場合どうにもうまくない、ここすごくむつかしい。そこで。

;; I はコチラ http://www.eskimo.com/~seldon/dotemacs.el

;; aand はコチラ http://github.com/imakado/emacs-imakado

(global-set-key (kbd "C-.") 'help) ;; もともと割り当てられているとします。
;; (global-set-key "\033[146~" (kbd "C-.")) ><

(global-set-key "\033[146~"
                (I (aand (key-binding (kbd "C-."))
                         (call-interactively it))))

そこで、key-binding関数で取り出したら希望通りにいった〜

というわけで、rxvt-unicodeの中のEmacsでも、“C-.”を押すと“C-.”へ割り当てられている'helpが出るようになった、嬉しい♪

maptimeoutをはじめて知った。

さてさて、screen越しにviper使うのならば.screenrcに

maptimeout 0

とします、“Viper ESC in terminal Emacs”より。これ気になっていたんだ、本当にありがとうございます、快適です!

(いまのところ0にしたことの悪影響に気づくことができていません。(^^;

課題

"146~"などと入力されちゃう時があるのをどうにかしたいナ。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/hchbaw/20100901/1283347188
Connection: close