วิธีแก้ไขพฤติกรรม backspace ที่แปลกประหลาดด้วย urxvt + zsh


15

ฉันใช้ urxvt ร่วมกับ zsh อย่างไรก็ตามตั้งแต่ติดตั้ง Ubuntu 10.04 ใหม่ฉันมีปัญหาต่อไปนี้ หากฉันพิมพ์ backspace เคอร์เซอร์จะเลื่อนไปทางขวา (แทนที่จะลบอักขระทางซ้าย)

สมมติว่าฉันพิมพ์อักขระ n ตัวจากนั้นกด backspace n-times ย้ายเคอร์เซอร์ไปทางซ้ายถ้าฉันพิมพ์ backspace แล้วอีกหนึ่งเคอร์เซอร์จะไม่เคลื่อนที่อีกต่อไป

หากฉันพิมพ์ลูกศรซ้ายจะไม่เกิดอะไรขึ้นถ้าฉันพิมพ์ลูกศรขวาหลังจากนั้นจะมีอักขระบางตัวเกิดขึ้น

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

ไม่ได้ช่วย

urxvt + bash ทำงานได้ดีเช่นเดียวกับ xterm + zsh

รุ่น zsh: 4.3.11-4ubuntu2.is.3ubuntu1 รุ่น rxvt-unicode: 9.09-3

ความคิดวิธีการแก้ไขปัญหานี้?

คำตอบ:


19

ลองเพิ่มสิ่งต่อไปนี้ใน. zshrc ของคุณ:

TERM=xterm

นี้แก้ไขได้สำหรับฉัน FWIW
seth

5
ใช้ดีกว่าTERM=xterm-256colorเพื่อรองรับ 256 สี
xuhdev

1
คุณไม่ได้หลีกเลี่ยงปัญหาโดยใช้ xterm แทนที่จะเป็น urxvt ใช่หรือไม่
villasv

1
ใช่มันใช้ได้สำหรับฉันเช่นกัน ฉันใช้ระบบย่อย Windows สำหรับ Linux (WSL) กับ Ubuntu และ ZSH และมันน่ารำคาญสำหรับฉันมานาน ขอบคุณสำหรับสิ่งนี้.
Dave Reid

7

ใน zsh สิ่งที่bindkey | grep deleteพูด? นี่คือสิ่งที่ฉันได้รับ:

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

คุณควรมี "^?" ตามที่แสดงถึง backspace ถ้าไม่ ... คุณสามารถโทรหาbindkey "^?" backward-delete-charที่พรอมต์ zsh เพื่อใส่เข้าไปได้

วิธีนี้แก้ไขปัญหาได้หรือไม่


1
bindkey | grep ลบ "^ D" delete-char-or-list "^?" backward-delete-char
นักเรียน

1

คุณสามารถแก้ไขปัญหาด้วยการตั้งค่า

stty erase '^?'

: ที่นี่รายละเอียดบางอย่างเกี่ยวกับพฤติกรรมเบี่ยงเบนของการเลียนแบบขั้วบางอย่าง (ซึ่งเป็นโดยวิธีการที่ว่าทำไมการเลียนแบบบางมีปัญหานี้) เป็นลินุกซ์ Backspace / ลบมินิ


1

เป็นเธรดเก่าและอาจไม่มีใครเห็นสิ่งนี้ แต่ปัญหาสำหรับฉันอยู่ใน.Xresourcesไฟล์ ฉันตีความURxvt*termNameพารามิเตอร์ผิดเป็นสตริงที่จะกลายเป็นurxvtชื่อหน้าต่าง ในความเป็นจริงสิ่งที่กลายเป็น$TERMตัวแปรสภาพแวดล้อมยกเว้นว่าเปลือกแทนที่มัน ( bashไม่)

ทางออกของฉันคือการเพิ่มURxvt*termName: xterm-256colorไปยัง~/.Xresourcesไฟล์ เช่นเดียวกับการเปลี่ยนแปลงใด ๆ ในไฟล์นี้คุณจะต้องเรียกใช้xrdb -merge ~/.Xresourcesและรีสตาร์ทอย่างสมบูรณ์urxvt(รวมถึงurxvtdกระบวนการ daemon) เพื่อให้การเปลี่ยนแปลงแสดง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.