[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:11651] Re: Question Backspace key



山口@富山大学 です。

<20011003174009U.red@naxnet.or.jp>において
red@naxnet.or.jpさんは言いました。

> 使用感は良好なのですが,emacsやnetscapeで,Backspace keyが,
> del keyと同じ挙動(カーソル上の文字を削除)になっていて,一文字
> 前の文字を削除しようと思うと,C-hでないとできない状況になって
> います.

netscape の方はよくわかりませんが、私もたまに emacs での
backspace/delete の挙動に悩むことがあります。

取りあえず Mule の話は考えずに話をします。

Emacs でキーの挙動の話をするときは大きく分けて 2 つの場合があります。

  * X 上で立ち上げたとき
    ウインドウマネージャから立ち上げたり、X 上の term から emacs で
    立ち上げた場合
  * term 上で立ち上げたとき
    コンソールから emacs として立ち上げたり、X 上の term から
    emacs -nw で立ち上げた場合

で、X 上で立ち上げたときは .emacs の設定は単純で、以下だけで
いいはずです。
# これ以外の backspace/delete に関する設定があるときはコメント
# アウトしてください

(global-set-key [backspace] 'delete-backward-char)
(global-set-key [delete] 'delete-char)

ただし、emacs を引数なしで立ち上げると lisp-interaction-mode になり、
このモードでは [delete] が delete-backward-char として設定されている
ので、別に設定が必要です。
# M-x fundamental-mode として試してみてください
## 上記の設定は term 上で立ち上げたときには影響を与えないので、
## X 上かどうか場合分けしてもしなくても大丈夫です
## (本当はした方がいいですが)

問題は term 上で立ち上げたときなんですが、これは term の設定に
依存します。

とりあえず私は Debian Policy

  http://www.debian.or.jp/Documents/debian-policy-ja/policy.ja.html/ch10.html#s10.8

に従うように term を設定しています。

Plamo 2.2.1 だと stty erase 以外は大丈夫なような気がします。
# 私はもう個人的にかなり環境設定してしまっていて、Plamo のデフォルト
# 環境を(簡単には)検証できません

この設定をすれば、「正しい端末」では Emacs 側で特に設定を変更せずとも
意図した挙動、

  backspace: カーソル前の 1 文字を削除
     delete: カーソル位置の 1 文字を削除
        C-h: ヘルプ表示

になってくれるはずです。

で、「正しい端末」かどうかという問題になるのですが、これを確かめる
方法やその結果などは JF の文書で紹介されています。

  Linux BackspaceDelete mini-HOWTO
  http://www.linux.or.jp/JF/JFdocs/BackspaceDelete.txt
  (HTML 版はないようです)

これによると、「正しい端末」を 標準 と呼び、そうでないものを アレゲ と
読んでいますが、その分類は、

    標準: xterm, rxvt, ...
  アレゲ: 一部の gnome-terminal, ...

となっています。
# 私が調べた結果 kterm はアレゲでした
## しかも kterm は Debian Policy でいうところの例外ターミナルの
## 挙動を示します(backspace で ^H 以外を生成できない)

ですので、ユーザ側からすれば、

  * アレゲな端末を使わない
    幸いコンソールは標準端末で、X 上の term は rxvt などで代用可能
    なので大丈夫です
  * アレゲな端末用に例外設定を加えて場合分けする
    ちょっと面倒くさいですが...

といった対策が必要です。

もしできれば、

  * アレゲな端末を修正する

ができれば一番いいのですが。

参考になれば幸いです。
+--------+--------+--------+--------+--------+--------+--------+
富山大学大学院理工学研究科
電子情報工学専攻 知能システム工学第 3 講座
山口 真悟 (YAMAGUCHI Shingo)  shingo@kip.iis.toyama-u.ac.jp

Follow-Ups
[plamo:11661] Re: Question Backspace key, KAWASAKI Masazumi
References
[plamo:11637] Question Backspace key, KAWASAKI Masazumi

[検索ページ] [メール一覧]
Plamo ML 公開システム