本文を読み飛ばす

CentOSのviでBSが効かない

新規にインストールしたCentOSで \ viのときだけBSが効かなかった.

理由があるようで, 難しいですね色々. \ 端末=puttyjp,ソフト=vimです.

出展元忘れましたが, \ インターネットを探すと以下のような記述がありました.

生まれと育ちの問題ですか, そうですか.

5. "RE: viでバックスペースが効かない" Posted by sbsym on 09-19-04, 01:13 PM (JST)

以前に同じ内容の質問にお答えしたことがあるのですが、 結論を先に申し上げますと .vimrc に:

if &tmp;term=="konsole"
set t_kb=Ctrl-V<BS>
set t_kD=Ctrl-V<DEL>
endif

と書き加えるとよいのです。Ctrl-V<BS>,Ctrl-V<DEL>の部 分はそのままの文字ではなく コントロールキーを使って入力して下さい。 正しく打ち込むと^Hか^?か^[[3~のように表示されます。

少し説明しますと、原因はおそらくkonsoleが <BS>=^?,<DEL>=ESC[3~ とDebianPolicyに沿った設定(これはこれで正しい)で出荷さ れているからでしょう。 ちなみにkterm,rxvt,mltermでは <BS>=^H,<DEL>=^?,xterm では <BS>=^H,<DEL>=ESC[3~ になっています。 確かめる方法ですが、まず:

$ stty -a

でeraseの設定を確認して下さい。次に:

$ ruby -e'STDIN.each_byte {|c| printf "%d %2X\n",c,c}'

を実行すると入力状態になりますので <BS><DEL> などいろ いろなキーを押して見て下さい、

でキーコードを十進 と十六進で表示します。もしキーが <BS> の動作をするならそれ は先ほどのsttyでeraseに割り当てられた信号を送信している からです。 vimはamiga生まれwindows育ちでasciiコードを素直に取り 入れています。それに対してlinux kernelはvt100に準拠して います。詳しくは、 http://en.tldp.org/HOWTO/BackspaceDelete/index.html をお読み下さい。

コメント

Comments powered by Disqus
宣伝: