Kei*_*son 9 bash tcsh readline
(背景:我是 tcsh 的长期用户,逐渐过渡到 bash,并试图找到一些有用的 tcsh 特定功能的等效项。)
在 tcsh 中,我可以定义一个执行外部命令的键绑定。例如,给定:
bindkey -c ^Gu uptime
Run Code Online (Sandbox Code Playgroud)
我可以在 tcsh 中输入“Control-G u”,它就会执行uptime
命令。我不必输入 Enter,该命令不会出现在我的历史记录中,我可以在输入行的中间输入(我发现后者对某些命令特别有用)。
bash 通过 GNU readline 库具有类似的键绑定机制,绑定在$HOME/.inputrc
(或其他地方)中指定。但是在阅读info readline
文档后,我没有看到通过键绑定来执行外部命令的方法。
我想出的最接近的事情是将这样的内容添加到我的.inputrc
文件中:
"\C-gu": "uptime\n"
Run Code Online (Sandbox Code Playgroud)
但这不会执行命令;相反,它的作用就像我输入uptime
后按 Enter 键一样。该命令出现在我的历史记录中(没关系),它仅在空行上起作用;如果我输入"echo control-Gu"
,那么它会打印uptime
而不是执行命令。
另一个小缺点是绑定会影响其他使用 GNU readline 的命令,例如 Perl 调试器。
有没有办法bindkey -c
通过将键序列映射到指定外部命令的执行来模拟 tcsh在 bash 中的效果?
如果重要的话,我在 Ubuntu 12.04 beta 2 上使用 bash 4.2.24。
gee*_*aur 11
并非所有bash
行编辑都由~/.inputrc
; 其中大部分是通过bind
内置配置的。在这种情况下,您需要类似的东西
bind -x '"\C-gu":uptime'
Run Code Online (Sandbox Code Playgroud)
在您的~/.bashrc
.
归档时间: |
|
查看次数: |
2976 次 |
最近记录: |