如何解决如何绑定上一个和下一个历史键来控制bash中的j和k?
我一直在尝试找到一种方法,可以将前一个历史记录绑定到bash中的 Control k ,并将下一个历史记录绑定到 Control j 。我知道这些命令已经有 Control p 和n 这样的绑定,但事实是我已经习惯了 Control k和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的绑定:
# For Control k and j
bindkey '^k' up-line-or-history
bindkey '^j' down-line-or-history
更新:我也添加了。 〜/ .inputrc在我的.bash_profile中,以便在ssh登录期间运行。
解决方法
在Readline初始化文件~/.inputrc
中,有两种使用键绑定的方法(请参见manual):
-
键名:
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都可以读取它。
您可以使用re-read-init-file
重新加载它,默认情况下绑定到C-x C-r
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。