Linux

如何在 bash 別名中模擬鍵盤快捷鍵?

  • September 19, 2010

例如,我的 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_sequenceor zle $widget $arguments[@])。據我所知,這在 bash 中是不可能的。

但是,在這種特定情況下,我沒有觀察到執行clear和鍵入Ctrl+L(readline command clear-screen)之間的任何區別。

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