我在 korn shell 上使用 xterm。我在 .kshrc 中定义如下:
set -o emacs
alias __A=`echo "\020"` # up arrow = ^p = back a command
alias __B=`echo "\016"` # down arrow = ^n = down a command
alias __C=`echo "\006"` # right arrow = ^f = forward a character
alias __D=`echo "\002"` # left arrow = ^b = back a character
alias __H=`echo "\001"` # home = ^a = start of line
alias __Y=`echo "\005"` # end = ^e = end of line
我执行了 source ./.kshrc(在我家里),但按下向上键没有任何反应。在 bash 中执行相同操作会显示较早执行的命令。
另外,在 korn shell 中,history 命令不显示历史记录(在 xterm 中时),显示以下消息 - /bin/ksh: hist: 1-0: 无效范围。
答案1
如果 emacs 绑定不起作用,请改用 vi 绑定。将 替换为set -o emacs
,然后将以下内容添加到文件中:set -o vi
.kshrc
.vimrc
set cpo-=<
nmap k <Up>
nmap j <Down>
nmap h <Left>
nmap l <Right>
答案2
如果有人在这里寻找/bin/ksh: hist: 1-0: invalid range
解决方案:对我来说,事实证明,它HISTFILE
被设置为/dev/null
全球某个地方。
添加export HISTFILE="${HOME}/.sh_history"
到我的~/.kshrc
解决了它。