![Bash vi 模式:模拟 Enter 绑定](https://linux22.com/image/1565280/Bash%20vi%20%E6%A8%A1%E5%BC%8F%EF%BC%9A%E6%A8%A1%E6%8B%9F%20Enter%20%E7%BB%91%E5%AE%9A.png)
我的 .bashrc 中有一个函数fh()
。我想在 vi-insert-mode 中绑定 Ctrl-F 来运行此函数。
我努力了
bind '"\C-F":"fh\n"'
这会在终端中输入 fh 并尝试自动完成命令。在网上搜索后,我以为 \n 应该模拟按下 Enter 键。
我发现了很多关于在 vi-insert-mode 中绑定 bash 命令的线程,但没有一个讨论函数。
有没有办法在 .inputrc 而不是 .bashrc 中进行绑定?
答案1
当然,我在发布问题 5 分钟后就找到了解决方案,但之后花了几个小时寻找答案......
我\n
用回车键的文字字符替换了它,就像^M
在 vim 中显示的那样。
引用巴枯宁的评论这来自 unix.com 的帖子
无论如何,要输入文字“ENTER 键”,请在 vi 中打开脚本文件。
将光标定位在您想要输入键的位置,然后使用“i”进入插入模式。
然后输入 CTRL-V,这会让 vi 将下一个字符视为文字。然后按 ENTER 键,屏幕上将出现“^M”。
请注意,“^M”不是两个字符(插入符号和“M”),而是一个。当您用光标移到它上面时,您就会看到这一点。
答案2
您需要将其作为脚本而不是函数。