Bagaimana cara memperbaiki perilaku backspace yang aneh dengan urxvt + zsh?

15

Saya menggunakan urxvt dalam kombinasi dengan zsh. Namun sejak saya menginstal Ubuntu baru 10,04 saya memiliki masalah berikut. Jika saya mengetik backspace kursor bergerak ke kanan (bukannya menghapus karakter di sebelah kiri).

Misalkan saya mengetik n karakter lalu menekan backspace n-kali memindahkan kursor n-posisi ke kiri, jika saya mengetik backspace lalu satu lagi, kursor tidak bergerak lagi.

Jika saya mengetikkan panah kiri, tidak ada yang terjadi, jika saya mengetikkan panah kanan setelahnya, beberapa karakter muncul.

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

tidak membantu.

urxvt + bash berfungsi dengan baik serta xterm + zsh.

zsh-versi: 4.3.11-4ubuntu2.is.3ubuntu1 versi rxvt-unicode: 9.09-3

Adakah cara untuk memperbaikinya?

siswa
sumber

Jawaban:

19

Coba tambahkan berikut ini ke .zshrc Anda:

TERM=xterm
ycallaf
sumber
Ini memperbaikinya bagi saya FWIW.
seth
5
Lebih baik digunakan TERM=xterm-256coloruntuk mendukung 256 warna.
xuhdev
1
Bukankah Anda hanya menghindari masalah, dengan menggunakan xterm alih-alih urxvt?
villasv
1
Ya, ini juga bekerja untuk saya. Saya menggunakan Windows Subsystem untuk Linux (WSL) dengan Ubuntu dan ZSH dan sudah lama mengganggu saya. Terima kasih untuk ini.
Dave Reid
7

Di zsh, apa bindkey | grep deletekatanya? Ini adalah garis yang saya dapatkan:

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

Anda seharusnya memiliki "^?" karena itu mewakili backspace. Jika tidak ... Anda dapat memanggil bindkey "^?" backward-delete-charzsh prompt untuk memasukkannya.

Apakah itu menyelesaikan masalah?

Ehtesh Choudhury
sumber
1
bindkey | grep delete "^ D" delete-char-or-list "^?" backward-delete-char
student
1

Anda juga bisa menyelesaikan masalah dengan mengatur

stty erase '^?'

Berikut adalah beberapa detail tentang perilaku menyimpang emulator terminal tertentu (yang merupakan alasan mengapa emulator tertentu memiliki masalah ini): Linux Backspace / Delete mini-HOWTO .

rotiyan
sumber
1

Ini adalah utas lama dan mungkin tidak ada yang akan melihat ini, tetapi masalah bagi saya ada di .Xresourcesfile. Saya telah salah mengartikan URxvt*termNameparameter sebagai string yang akan menjadi urxvtjudul jendela. Sebenarnya apa yang menjadi $TERMvariabel lingkungan, kecuali shell menimpanya ( bashtidak).

Solusi saya adalah menambahkan URxvt*termName: xterm-256colorke ~/.Xresourcesfile. Seperti halnya perubahan pada file ini, Anda harus menjalankan xrdb -merge ~/.Xresourcesdan me-restart sepenuhnya urxvt(termasuk urxvtdproses daemon) agar perubahan dapat ditampilkan.

Blieque
sumber