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