web-dev-qa-db-ja.com

urxvt + zshで奇妙なバックスペースの動作を修正する方法は?

Zshと組み合わせてurxvtを使用します。ただし、ubuntu 10.04の新規インストール以降、次の問題が発生します。 backspaceと入力すると、カーソルが右に移動します(左側の文字を削除する代わりに)。

N文字を入力し、バックスペースをn回押すと、カーソルがnポジション左に移動したとします。バックスペースを1回入力すると、カーソルは移動しなくなります。

左矢印を入力しても、右矢印を入力しても何も起こりません文字が発生します。

mv .zshrc .zshrc.bak
mv .Xdefaults .Xdefaults.bak

助けにならなかった。

urxvt + bashは、xterm + zshと同様に正常に動作します。

zsh-version:4.3.11-4ubuntu2.is.3ubuntu1 rxvt-unicodeバージョン:9.09-3

これを修正する方法はありますか?

14
student

次を.zshrcに追加してみてください。

TERM=xterm
19
ycallaf

Zshでは、bindkey | grep deleteは何と言っていますか?これらは私が得る行です:

"^D" delete-char-or-list
"^H" backward-delete-char
"^[3;5~" delete-char
"^[[3~" delete-char
"^?" backward-delete-char

「^?」が必要ですバックスペースを表すように。そうでない場合は、zshプロンプトでbindkey "^?" backward-delete-charを呼び出して、入力することができます。

これで問題は解決しますか?

6

それは古いスレッドであり、おそらく誰もこれを見ることはありませんが、私にとっての問題は.Xresourcesファイルにありました。 URxvt*termNameパラメータをurxvtウィンドウタイトルになる文字列として誤って解釈していました。実際、シェルがそれをオーバーライドしない限り(bashがオーバーライドしない限り)、$TERM環境変数になります。

私の解決策は、URxvt*termName: xterm-256color~/.Xresourcesファイルに追加することでした。このファイルの変更と同様に、変更を表示するには、xrdb -merge ~/.Xresourcesを実行し、urxvturxvtdデーモンプロセスを含む)を完全に再起動する必要があります。

1
Blieque

設定することで問題を回避することもできます

stty erase '^?'

特定のターミナルエミュレータの逸脱した動作に関する詳細を次に示します(特定のエミュレータにこの問題がある理由です)。 Linux Backspace/Delete mini-HOWTO

1
rotiyan