
我經常編譯東西,因此一遍又一遍地重複相同的命令,所以我想從我的“視覺記憶”中受益,並在終端上附加一種“重複上一個命令”按鈕。更準確地說,我是這樣看的:
- 我的“特殊”終端就像標準終端機模擬器一樣,底部有一個額外的輸入線,上面附有一個“運行”按鈕。點擊按鈕將運行命令沒有擦除它。
- 也許甚至可以堆疊任意數量的此類命令(因為我經常需要在 2 或 3 個命令之間交替)。
我知道我可以使用↑Enter鍵盤來重做最後一個命令,但經常發生的情況是我忘記我只需要輸入另一個命令(修復某些內容或其他),因此↑不會從歷史記錄中帶來正確的命令。因此,我必須在按 Enter 之前實際閱讀(至少瀏覽)命令,而不是條件反射。
某處有這樣的裝置嗎?我經常精確地使用多個終端來確保每個終端始終具有“正確”的命令,但我的Alt+Tab技能通常會讓我跳到錯誤的視窗。而且我需要終端信息,例如環境和 cwd,因此我不能只是嘗試將其“整合”到我的程式碼編輯器中。我的意思是,使用Alt+F2然後Enter將不起作用(因為我還需要從終端讀取輸出)。我只是希望能夠同時充分利用鍵盤和視覺記憶(透過點擊)。
答案1
答案2
查看 shell 的歷史功能。在我的 zsh 中:
!!
重複最後一個命令。
鍵入history
以查看最後幾個條目。
要在 shell 中取得所需的緩衝區:
man zshzle
或者
man readline
另外,您可以使用 Tab 鍵展開補全
make long_target
ls some_path
...
make l<TAB> # prints 'make long_target' without running it
使用通配符、擴充...您的用例沒有一處不在此功能之外。
答案3
使用+zsh
就可以做到這一點。鍵入命令,然後按+而不是。該命令將被執行,並且在命令完成後相同的命令將出現在行緩衝區中。EscAEscAEnter
答案4
看起來您需要一個非常簡單的答案。既然您提到了Alt+ Tab,我假設您正在使用 (X)windows。在按下“Enter”之前,請用滑鼠反白顯示該命令。當您突出顯示它時,它會自動複製到剪貼簿。若要貼上它,請按滑鼠中鍵(滾輪)或鍵入Shift+ Insert。