เมื่อฉันกดHomeถ้าอินพุทปัจจุบันของฉันสั้นพอ (พูด, <36 ตัวอักษร) มันใช้งานได้ดี อย่างไรก็ตามเมื่อฉันพิมพ์คำสั่งที่ยาวขึ้นและต้องการกลับไปที่จุดเริ่มต้นดูเหมือนว่ามันจะทำงานได้ แต่คำสั่งจะไม่ปรากฏอีกต่อไป ดูเหมือนว่าฉันไม่ได้อยู่ในจุดเริ่มต้น แต่ปิดประมาณ 10 ตัวอักษร แม้ว่าฉันจะพิมพ์ "สุ่มสี่สุ่มห้า" ก็ใช้งานได้ดี แต่ดูเหมือนว่าจะเป็นระเบียบทั้งหมดราวกับว่าอินพุตทั้งหมดถูกเลื่อนไปทางขวา แต่ไม่ใช่การวาดใหม่ ดังนั้นฉันจึงพิมพ์ทับมัน แต่ "ไม่จริง" เพราะสถานที่ที่ฉัน "ลบ" คือ "จริง ๆ " อักขระ 10 ตัวทางขวา ดังนั้นถ้าฉันพยายามที่จะลบคำสั่งตัวอักษร 10 ตัวแรกจะยังคงปรากฏ แต่ถ้าฉันกดEnterมันก็จะแสดงข้อความแจ้งอีกครั้งราวกับว่าอินพุตก่อนหน้านี้ว่างเปล่า
ฉันรู้ว่ามันไม่ใช่คำอธิบายที่ดีที่สุดเท่าที่เคยมีมา แต่ประเด็นก็คือว่าการทุบตีจดจำและพยายามทำสิ่งที่ถูกต้อง แต่มักล้มเหลว
ฉันทำซ้ำทั้งใน tty และใน terminal ในเซสชั่น X เมื่อฉันกดCtrl+ Vแล้วHomeฉันเห็นลำดับที่แตกต่างกัน ( ^[OH
ใน X, เป็น^[[1~
tty) แต่ทั้งคู่ดูเหมือนจะอยู่ใน/etc/inputrc
:
# do not bell on tab-completion
#set bell-style none
set meta-flag on
set input-meta on
set convert-meta off
set output-meta on
$if mode=emacs
# for linux console and RH/Debian xterm
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[7~": beginning-of-line
"\e[3~": delete-char
"\e[2~": quoted-insert
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
"\e[1;5C": forward-word
"\e[1;5D": backward-word
# for rxvt
"\e[8~": end-of-line
# for non RH/Debian xterm, can't hurt for RH/DEbian xterm
"\eOH": beginning-of-line
"\eOF": end-of-line
# for freebsd console
"\e[H": beginning-of-line
"\e[F": end-of-line
$endif
echo $TERM
แสดงlinux
ใน tty และxterm
X session
มัน
GNU ทุบตีรุ่น 4.2.24 (2) - ปล่อย (i686-pc-linux-gnu)
ใครมีเบาะแสเกี่ยวกับเรื่องนี้?
PS1="\e[0;36m[\u@\h \W]\$ \e[m"
ก็แก้ไขเมื่อเทียบกับหนึ่งเริ่มต้น: มีอะไรผิดปกติกับมัน? การพิมพ์อักขระ 36 ตัวไม่เติมหนึ่งบรรทัด (โดยไกล) นอกจากนี้ผมไม่ได้มีด้านการเลื่อนใน TTY :)
PS1='$ '