Bash
如何在上一個命令中保留游標位置?
當我遍歷 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
觸發新的行為。它不會更改游標位置🎉🎉🎉,但會插入倒數第二個條目而不是最後一個條目。不知道為什麼。無法修復它。
也許其他人可以以此為基礎,破解最後一塊拼圖。