zsh和bash之类的shell有bang命令,它们以感叹号开头并展开到用户历史记录中的项目。如何在bash中交互式地展开bang命令?
为了得到最后运行的命令的最后一个参数,可以使用!$
,例如,
$ echo one two three
$ echo !$ !$ !$
> three three three
在zsh的,能够扩大这些砰交互式命令:
touch foo bar
ls !$<TAB>
!$
将扩大到foo
内联。
这是非常有用的,因为它经常阻止我从错误:我按tab
展开并确保我得到它正确和C-/
撤消扩展时,我有信心。
在bash中是否有设置来实现bang命令的交互式扩展?
什么子shell和一般变量的扩张为此事(即echo $(uname)<TAB>
至echo Linux
和echo $SHELL<TAB>
到echo /bin/bash
)。
你的问题的前提是读者明白zsh中的bang命令是什么。如果您描述了您之后的功能,则可能可以覆盖更广泛的受众群体。我猜M-。前缀参数接近你想要的,但我没有搜索到。 – tripleee
http://structure.usc.edu/bash/bashref_8.html#SEC106解释了可用的绑定。 M-C-e会进行一般扩展,所以或多或少地出现在第二个问题中。 (请在将来每个帖子只有一个问题!) – tripleee
我扩大了一下我的意思是与砰的命令。 我认为subhell,变量等机制是相同的,这就是为什么我包括问题的第二部分。 你说得对,谢谢,'shell-expand-line'确实是我在找的东西。 – kba