Linux
如何在 bash 別名中模擬鍵盤快捷鍵?
例如,我的 bash 別名之一是這個
alias p='clear;ls -lt;pwd;'
clear
也清除了我不想要的歷史。我只想暫時清除螢幕。
Ctrl
+L
然而正是我想要的。如何在我的別名中使用它?
如果
clear
正在清除歷史記錄並且終端必須有執行此操作的函式、別名或腳本。看看type -a clear
告訴你什麼。清除終端的另一種方法是使用which 與應該做
tput clear
的事情完全相同。clear
您也可以嘗試使用轉義序列直接執行此操作(例如 xterm),但對於不同的終端可能會有所不同(它應該適用於任何模擬 xterm,例如 gnome-terminal、PuTTY 等):printf '\e[H\e[2J'
您通常要求的是從 bash 執行 readline 命令(相當於 zsh 中的
zle -U $key_sequence
orzle $widget $arguments[@]
)。據我所知,這在 bash 中是不可能的。但是,在這種特定情況下,我沒有觀察到執行
clear
和鍵入Ctrl+L
(readline commandclear-screen
)之間的任何區別。