[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[plamo:11350] Re: kemacs on plamo 2.2.1
-
From:argrath
-
Date:Mon, 17 Sep 2001 15:48:50 +0900
- Subject: [plamo:11350] Re: kemacs on plamo 2.2.1
- From: argrath@xxxxxxxx
- Date: Mon, 17 Sep 2001 15:48:50 +0900
- Posted: Mon, 17 Sep 2001 15:49:20 +0900 (JST)
白方です。一応(?)解決しました。
<20010917065328P.mk@l.email.ne.jp>の記事において
mk@L.email.ne.jpさんは書きました。
>> > 例えば上移動キーの場合、kemacs では ^[OA というシーケンスを
>> > 期待しているようです (実際旧マシンではそのようになっています) が、
>> > plamo 2.2.1 では ^[[A というシーケンスを返しているようです。
>> これは「カーソルキーモード」の設定という端末の属性を扱うエスケープ
>> シーケンスの仕事です。
>> カーソルキーモードが「アプリケーションカーソルキーモード」の場合は
>> ESC O Aなどを返し、「カーソルキーモード」の場合は ESC [ A などを返
>> します。
>> この切替えは端末に対してエスケープシーケンスを送ることで行います。
>> ESC [ ? 1 h を送るとアプリケーションモードになり、
>> ESC [ ? 1 l を送るとカーソルキーモードになります(最後は小文字のL)。
なるほど、そういうエスケープシーケンスがあったのですね。
知りませんでした…。
>> 今まで、kemacsのときだけアプリケーションカーソルキーになっていると
>> すれば、kemacsが起動/復帰の際に自動的にアプリケーションカーソルモ
>> ードへの変更シーケンスを送っている可能性があります。
ということで、さっそく
% kemacs > log
として kemacs が送っているコードを調べたところ、確かに旧マシンでは
最初に ESC [ ? 1 h が出力されていましたが、新マシンではありません
でした。これが直接の原因、ということですね(ちなみに同じバイナリです)。
で、どうやらこれは termcap でいうところの ks / ke エントリの
ようなのですが、新マシンにもちゃんと定義されているように
見えますし、ソースをちょっと追っかけてみても単に出力してるだけに
見えるので、なぜ新マシンでこれが出力されていないかは結局謎です(^^;)
でもまあ、kemacs の前後にエスケープシーケンス送ってやればいい、
ということは分かったので、その場しのぎ的ですが
#! /bin/sh
echo '^[[?1h'
/usr/local/bin/kemacs $@
echo '^[[?1l'
というラッパスクリプトを書いてみたところ、ちゃんとカーソルキーが
使えるようになりました。
根本的解決ではありませんが、とりあえずこれでよしとします(^^;)
どうもありがとうございました。
以下余談ですが、
>> kemacsは使ったことがないのでわかりませんが、GNU Emacsの系列であれ
>> ばsuspend-emacsに対応するhookがあったと思いますから(xemacsでは、
>> suspend-hooksとresume-suspend-hookというのがありました)、これに端
>> 末への文字列送信コマンド(send-string-to-terminalとか)を割り当てる
>> ことで対処ができるかも知れません。
一応遠い祖先は同じ Emacs なのですが、いわゆる MicroEmacs の
系列なので、そもそも EmacsLisp じゃなかったりします。
設定の自由度が GNU Emacs 系ほどないので、設定ファイルだけで
「ESC [ A を上移動に割り当てる」とかは出来ないのでした。
その分軽いので愛用しているのですが。
--
-------------------------------------------------------------------
「ばよえ〜ん」 白方 健太郎 --
mailto:argrath@ub32.org
http://argrath.ub32.org/
- References
-
- [plamo:11325] Re: kemacs on plamo 2.2.1, Minoru Kimura
[検索ページ]
[メール一覧]
Plamo ML 公開システム