我不太确定这是否已成为一个普遍问题,或者是否只是我最近在 OpenStack 上进行了大量工作。无论如何,我注意到一些命令,例如整套 OpenStack 命令 和git
,使用子命令提供有关其子模块的信息help
,例如
neutron help security-group-rule-create
git help clone
这并不是很好的工作方式,因为每次我对某些事情感到不确定甚至遇到错误时,我都必须
- 向左滚动,
- 添加“帮助”,
- 按回车键,
- 阅读帮助,
- 按向上箭头,
- 一直向左滚动,
- 删除“帮助”,
- 按回车键
我知道 git 有可用的手册页,我只是想添加 OpenStack 命令之外的另一个示例。
我更愿意有一些组合键,甚至是一个简短的命令来修改最后一个命令(我可以通过按向上箭头键来调用该命令)并插入“help”作为第二个单词或删除第二个单词,如果是“帮助”的话。
我正在使用 Bash,所以我正在考虑使用fc
和别名,但我根本无法完成这项工作。我认为 fc 的模式仅限于字符串替换,无法处理诸如“第二个单词”之类的复杂事物。
最棒的解决方案是“enter”的修饰符,这样我就可以使用向上箭头键或 ctrl+r 来搜索命令,当我找到所需的命令时,我按 ctrl+enter 来执行它,但是在执行之前,“help”会自动插入为命令的第二个字。或者,当我按 alt+enter 执行所需的命令时,“help”将在执行前作为命令的第二个单词被删除。然而,我不知道该怎么做。
答案1
我们可以作弊并创建一个名为 的简单命令h
,并将其放在您的路径中:
例如
#!/bin/sh
cmd="$1"
shift
echo Running $cmd help "$@"
$cmd help "$@"
现在您可以简单地h !!
插入help
消息,例如
$ git foo bar baz
....
$ h !!
h git foo bar baz
Running git help foo bar baz
...
您的h
命令可以根据需要变得复杂;例如,对任何命令的特殊解析可能需要的不仅仅是放在help
前面。
阅读帮助后,您只需按up-arrow两次即可返回真正的命令。