在我需要使用的 QNX Neutrino shell 中,删除键无法正常工作。按下它时,会出现 ~。
我的最终目标是让键盘上的 Delete、Home 和 End 键的行为与在 Windows 命令 shell 中的行为一样。
如何将“删除光标处的字符”绑定到 Delete 键盘按钮?我尝试使用别名,但没有成功。
以下注释可能重要也可能不重要,但可以提供背景信息:
- 这是 PD KSH v5.2.14 99/07/13.2
- Control-D 的行为就像我期望删除按钮一样。
- bind 显示以下内容:
bind | grep del ^D = eot-or-delete ^H = delete-char-backward ^? = delete-char-backward ^[^H = delete-word-backward ^[d = delete-word-forward ^[h = delete-word-backward ^[^? = delete-word-backward ^XP = delete-char-forward ଠ= delete-char-forward
- infocmp 显示以下内容:
infocmp # Reconstructed via infocmp from file: /usr/lib/terminfo/x/xterm xterm|vs100|xterm terminal emulator, am, km, mir, msgr, xenl, xon, cols#80, it#8, lines#65, vt@, acsc=Oa``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, bel=^G, blink=@, bold=\E[1m, clear=\E[H\E[2J, cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[2~, il=\E[%p1%dL, il1=\E[L, ind=^J, is1=\E=\E[?1l, kBEG=\ENn, kCPY=\ENs, kCRT=\ENt, kDL=\ENv, kEXT=\ENw, kFND=\ENx, kHLP=\ENy, kOPT=\ENz, ka3=\EOs, kb2=\EOr, kbs=^H, kc1=\EOq, kcan=\EOm, kclo=\ENc, kclr=\ENa, kcmd=\EOu, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kend=\E[9, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\ENf, khlp=\ENh, khome=\E[8, khts=\ENb, kich1=\E[2~, kmov=\ENi, kmrk=\ENm, kmsg=\ENe, knp=\E[6~, kopn=\ENo, kopt=\ENk, kpp=\E[5~, kref=\ENl, kres=\ENp, krfr=\ENg, krpl=\ENr, krst=\ENj, ksav=\ENq, kslt=\EOM, ktbc=\ENd, kund=\ENu, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l, rmkx=\E>, rmso=\E[m, rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H, rs2=@, sc=\E7, setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m, sgr0=\E[m, smacs=^N, smam=\E[?7h, smkx=\E=, smso=\E[7m, tbc=\E[3g,
- stty 显示以下内容:
stty Name: /dev/ttyp0 Type: pseudo Opens: 2 +edit +echok +echonl +osflow intr=^C quit=^\ erase=^? kill=^U eof=^D start=^Q stop=^S susp=^Z lnext=^V min=01 time=00 pr1=^[ pr2=5B left=44 right=43 up=41 down=42 ins=40 del=50 home=48 end=59
- Control A 和 Control E 的行为就像我希望 Home 和 End 键一样
希望这对某些人来说真的很容易...我只是不太清楚如何将它们结合起来。
答案1
对于 Google 员工来说:
从https://unix.stackexchange.com/questions/66434/delete-key-doesnt-work-on-command-line
bind '^[[3'=prefix-2
bind '^[[3~'=delete-char-forward