Bash

如何在上一個命令中保留游標位置?

  • February 15, 2021

當我遍歷 bash 歷史記錄中的先前命令時,游標位置總是在命令末尾跳轉。我想要某種方式來記住上次執行命令的目前游標位置。

這在為某些命令嘗試不同的命令行選項時很有用。現在我必須按下up鍵並將游標向後移動到輸入選項的位置以進行編輯。如果可能的話,我想消除這第二步。

我正在使用 bash,但其他 shell 的解決方案也很有趣。

也許這是您正在尋找的選項?

history-preserve-point (Off)
        If  set to On, the history code attempts to place point at the
        same location on each history line retrieved 
        with previous-history or next-history.

要打開它,請將其添加到您的~/.inputrc

set history-preserve-point on

幾乎可以工作。

__insert_last_history_entry() {

   READLINE_LINE=$(history -p '!!')
}

bind -x '"\ea" : __insert_last_history_entry'   # Alt-a

將其保存在文件中(例如,insertLastHistory)並在命令行中獲取它:

. insertLastHistory

(或者,將其內容插入您~/.bashrc的外殼並重新啟動外殼)。

Alt-a觸發新的行為。

它不會更改游標位置🎉🎉🎉,但會插入倒數第二個條目而不是最後一個條目。不知道為什麼。無法修復它。

也許其他人可以以此為基礎,破解最後一塊拼圖。

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