shi*_*hix 8 shell freebsd ksh keyboard emacs
所以基本上我的End, Pageup/Pagedown和Deletekey 在 ksh93 中不起作用。顺便说一下,我正在运行 FreeBSD。
我的箭头键工作正常,我的主页键也是如此。
当我把它放在我的 .kshrc
set -o emacs
Run Code Online (Sandbox Code Playgroud)
我试图做此,通过把这个在我的.kshrc
。使End关键工作。
alias __Y=`echo "\005"` # end = ^e = end of line
Run Code Online (Sandbox Code Playgroud)
我打开 vim,按下Ctrlv,然后输入005。并且^E
出现了。尽管如此,没有任何效果。
反正有人知道让那些钥匙工作吗?
此外,当我按下这些键时,它会打印出一个~
. 我也知道我可以使用Ctrld,或者Ctrla,我不想使用这些。
该答案特定于某些终端模拟器,我认为它不能在 Solaris 之外推广。
在 ksh 中,按Ctrl+V然后按End。这将插入一个文字转义字符,然后是密钥发送的其余转义序列。例如,您可能会看到^[[4~
(^[
开头的实际上是一个转义字符,^
后面没有[
)。对要重新配置的其他光标键执行相同操作。
在您的 中.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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5643 次 |
最近记录: |