Shell
Korn Shell:結束、pgup、pgdown 和刪除鍵不起作用
所以基本上我的
End
,Pageup
/Pagedown
和Delete
key 在 ksh93 中不起作用。順便說一句,我正在執行 FreeBSD。我的方向鍵正常工作,我的 home 鍵也正常工作。
當我把它放在我的
.kshrc
set -o emacs
我試過這樣做,把它放在我的
.kshrc
. 使End
關鍵工作。alias __Y=`echo "\005"` # end = ^e = end of line
我打開 vim,按下
Ctrl``v
,然後輸入0``0``5
。並且^E
出現了。不過,沒有任何效果。無論如何,任何人都知道要讓這些鑰匙工作嗎?
此外,當我按下這些鍵時,它會列印出一個
~
. 我也知道我可以使用Ctrl``d
,或者Ctrl``a
,我不想使用這些。
該答案特定於某些終端仿真器,我認為它不能在 Solaris 之外推廣。
在 ksh 中,按
Ctrl
+V
然後按End
。這將插入一個文字轉義字元,然後是密鑰發送的其餘轉義序列。例如,您可能會看到^[[4~
(^[
開頭的實際上是轉義字元,而不是^
後跟[
)。對要重新配置的其他游標鍵執行相同操作。在您的 KEYBD 中
.kshrc
,設置一個KEYBD 陷阱以將轉義序列從功能鍵轉換為您希望該鍵呼叫的命令的綁定。例如(您可能需要調整轉義序列 - 請注意,$'…',
\e` 中的意思是轉義字元):keybd_trap () { case ${.sh.edchar} in $'\e[1~') .sh.edchar=$'\001';; # Home = beginning-of-line $'\e[4~') .sh.edchar=$'\005';; # End = end-of-line $'\e[5~') .sh.edchar=$'\e>';; # PgUp = history-previous $'\e[6~') .sh.edchar=$'\e<';; # PgDn = history-next $'\e[3~') .sh.edchar=$'\004';; # Delete = delete-char esac } trap keybd_trap KEYBD set -o emacs