Làm cách nào để khắc phục hành vi backspace lạ với urxvt + zsh?


15

Tôi sử dụng urxvt kết hợp với zsh. Tuy nhiên, kể từ khi cài đặt Ubuntu 10.04 mới, tôi gặp vấn đề sau. Nếu tôi gõ backspace, con trỏ di chuyển sang phải (thay vì xóa các ký tự bên trái).

Giả sử tôi đã nhập n ký tự sau đó nhấn backspace n lần di chuyển vị trí n của con trỏ sang trái, nếu tôi nhập backspace thì thêm một lần nữa, con trỏ sẽ không di chuyển nữa.

Nếu tôi gõ mũi tên trái, không có gì xảy ra, nếu tôi gõ mũi tên phải sau đó sẽ xuất hiện một số ký tự.

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

đã không giúp đỡ.

urxvt + bash hoạt động tốt cũng như xterm + zsh.

phiên bản zsh: 4.3.11-4ubfox2.is.3ubfox1 phiên bản rxvt-unicode: 9.09-3

Bất kỳ ý tưởng làm thế nào để khắc phục điều này?

Câu trả lời:


19

Hãy thử thêm phần sau vào .zshrc của bạn:

TERM=xterm

Điều này đã sửa nó cho tôi FWIW.
seth

5
Sử dụng tốt hơn TERM=xterm-256colorđể hỗ trợ 256 màu.
xuhdev

1
Không phải bạn chỉ đang tránh vấn đề, bằng cách sử dụng xterm thay vì urxvt sao?
biệt thự

1
Vâng, điều này làm việc cho tôi là tốt. Tôi sử dụng Hệ thống con Windows cho Linux (WSL) với Ubuntu và ZSH và điều đó đã gây khó chịu cho tôi quá lâu. Cảm ơn vì điều này.
Dave Reid

7

Trong zsh, bindkey | grep deletenói gì? Đây là những dòng tôi nhận được:

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

Bạn nên có "^?" như thể hiện backspace. Nếu không ... bạn có thể gọi bindkey "^?" backward-delete-chartại dấu nhắc zsh để đặt nó vào.

Điều đó có giải quyết được vấn đề không?


1
ràng buộc | grep xóa "^ D" xóa-char-hoặc-list "^?" backward-xóa-char
sinh viên

1

Bạn cũng có thể giải quyết vấn đề bằng cách cài đặt

stty erase '^?'

Dưới đây là một số chi tiết về hành vi lệch lạc của một số trình giả lập thiết bị đầu cuối nhất định (đó là lý do tại sao một số trình giả lập nhất định có vấn đề này): Linux Backspace / Xóa mini-HOWTO .


1

Đó là một chủ đề cũ và có lẽ không ai sẽ thấy điều này, nhưng vấn đề đối với tôi là trong .Xresourcestập tin. Tôi đã hiểu sai URxvt*termNametham số là chuỗi sẽ trở thành urxvttiêu đề cửa sổ. Trong thực tế những gì trở thành$TERM biến môi trường, trừ khi shell ghi đè lên nó ( bashkhông).

Giải pháp của tôi là thêm URxvt*termName: xterm-256colorvào ~/.Xresourcestập tin. Như với bất kỳ thay đổi nào đối với tệp này, bạn sẽ cần chạy xrdb -merge ~/.Xresourcesvà khởi động lại hoàn toàn urxvt(bao gồm cả urxvtdcác quy trình trình nền) để các thay đổi hiển thị.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.