Bash

在歷史上查看歷史擴展

  • June 25, 2020

我不得不重寫歷史擴展命令,而不是從歷史中呼叫它。

例如,我必須在以下命令中將 35 更改為 36、37、38….。

$ print -P '\033[35mThis is the same red as in your solarized palette\033[0m'
$ !!:gs/35/36

現在我需要成功!!:gs/36/37

但是,當我使用Up密鑰時。它沒有顯示$ !!:gs/35/36。表明print -P '\033[35mThis is the same red as in your solarized palette\033[0m'

在這裡可以做什麼?

我有兩個建議,你可以如何接近你想要的(bash僅供參考):

將其添加到歷史記錄

在輸入第一個歷史擴展命令行之前,您可以禁用歷史擴展 ( set +H) 並“執行”歷史擴展命令(然後使用 重新啟用set -H)。然後它是 shell 歷史的一部分,您可以輕鬆地返回並修改它。

在 shell 歷史中獲取歷史擴展命令行的更直接的方法是history -s. 不過,較早的建議可能更容易記住(並且在復雜引用的情況下可能更容易)(取決於某人對 shell 選項的熟悉程度)。

讀取線拉動

當您在整個操作過程中不需要拉動時,這是最有用的。

鍵入歷史擴展命令行,但不要按Enter。而是轉到行的開頭/結尾並使用Ctrl- K/ Ctrl-刪除整行U。這會將整條線放在殺戮環上。Ctrl您可以使用-恢復該行Y。即使在執行命令之後,只要您不在殺傷環中放置任何其他東西,您也可以通過這種方式將其取回。Ctrl即使:您可以使用- Y Alt-回到較舊的殺戮環條目Y

引用自:https://unix.stackexchange.com/questions/595055