我知道 set -o vi 和 k 和 j 组合。我想将它们映射到向上箭头和向下箭头,以便我可以像 bash 一样使用 AIX(ksh 提示符)。有什么建议吗?
答案1
这是对我有用的一种方法:将以下内容放入 .profile 脚本中
set -o emacs
alias __A=$(print -n "\020")
alias __B=$(print -n "\016")
alias __C=$(print -n "\006")
alias __D=$(print -n "\002")
答案2
您可能能够trap
在KEYBD
信号上编写一个,以处理箭头键击并在其位置发出vi
k
和键击。j
您可以通过按 Ctrl-v 然后按 键来查看箭头键发出的字符。您应该会看到类似 的内容^[[A
。
例如:
f () { if [[ ${.sh.edchar} == $'\033[A' ]]; then .sh.edchar="k"; fi; }
trap f KEYBD
测试.sh.edmode
变量来控制键是在插入模式还是命令模式下被替换(0x1b
在插入模式下其值为空,否则为空)。