有没有办法在 bash 中保存键盘宏?

有没有办法在 bash 中保存键盘宏?

我想永久保存键盘宏我使用C-x (和录制了该C-x )宏。有没有一种简单的方法可以“查看源代码”我新录制的宏,以便我可以将其绑定到 ~/.inputrc 中的键盘快捷键?

我以为dump-macros会这么做,但似乎没有......

答案1

事实证明真的不行,就是直到今晚才行!

因为我无论如何都很好奇想深入研究 bash 源代码,所以我继续添加了这个功能 :)。我们将看看 bash 维护者是否会申请我的补丁

答案2

如果这是最后定义的宏,那么它应该可以正常工作......

GNU Bash 手册:以适合 inputrc 文件的格式打印最后定义的键盘宏。

print-last-kbd-macro ()

答案3

我能想到的最好的办法就是尝试:

echo >>.inputrc '<ctrl-x e>'

或者如果宏有多行,请尝试:

echo >>.inputrc <<EOF
<ctrl-x e>
EOF

如果您使用了控制字符,您可能希望在其中放置一个 sed 以将其替换为 inputrc 的正确转义代码。

然后进入并编辑最后一行以获得正确的前缀和后缀以实现您想要实现的目标......

答案4

看起来.inputrc允许您直接编辑命令。我dump-macros也尝试过使用,但无法使其工作,也没有太多关于它的文档。也许它不起作用或已被弃用。

如果有类似xevemacs 绑定的命令,那将会很有帮助。无论如何,我认为你最好的选择是编辑输入rc使用页面底部第一个链接中的指南。这很容易做到。

第二个链接是一个例子输入rc文件以获取有关如何设置宏的帮助。

顺便说一下,还有一个很酷的命令,bind -P它会列出你所有的宏。

http://www.gnu.org/software/bash/manual/html_node/Miscellaneous-Commands.html#Miscellaneous-Commands

以下是 inputrc 文件的示例:

http://www.gnu.org/software/bash/manual/html_node/Sample-Init-File.html#Sample-Init-File

相关内容