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?

Jawaban:


19

Coba tambahkan berikut ini ke .zshrc Anda:

TERM=xterm

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?


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 .


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.