我一直在试图找到一种方法,将上一个历史记录绑定到bash中的Controlk,并将下一个历史存储绑定到controlj。我知道这些命令已经有了像Controlp和n这样的绑定,但问题是我已经习惯了Controlk和j。我在zsh中使用vim时绑定了它们。
我现在需要将ssh连接到一个项目的服务器(使用bash(中,并希望具有相同的密钥绑定。我已经尝试将这些命令包含在我的.inputrc:中
"C-k": previous-history
"C-j": next-history
但是,当文件在登录时加载时,它会显示此错误。
-bash: C-k:: command not found
-bash: C-j:: command not found
除了C-k和C-j,我还尝试过使用 ^k和^j一些上下文:我使用Macbook,这些是适用于zsh:的绑定 更新:我还添加了。~/。在我的.bash_profile中输入rc,以便在ssh登录期间运行。# For Control k and j
bindkey '^k' up-line-or-history
bindkey '^j' down-line-or-history
在Readline init文件~/.inputrc
中,有两种方法可以使用密钥绑定(请参阅手册(:
-
密钥名称:
Control-k: previous-history Control-j: next-history
-
keyseq:它必须放在双引号中,并识别一些GNU Emacs风格的转义,尤其是Ctrl:的
C
"C-k": previous-history "C-j": next-history
此外,不能将~/.inputrc
视为Bash脚本(就像从shell初始化文件中获取一样(;它由使用Readline库的任何程序读取——在您的情况下是Bash。
您可以使用默认绑定到C-x C-r
的re-read-init-file
重新加载它。