我正在制作一个 bash 函数,它显示一个绑定到pgdown 浏览窗口的菜单,其中列出了我的历史记录(例如 4dos/4nt 等)。我已经这样做了,所以一行总是突出显示。
$pos 是我希望列表在历史记录中开始的位置
$ function hidown (){ if [ "$down" -gt 1 ]; then ((--down)); else down=100; fi ; hismenu_down "$down"; }
$ bind -x '"\e[6~":"hidowm"'
$ down=100
`
function hismenu_down()
{
pos=$1; hilength=10; hirange="$(($hilength+$pos))";
hisstring=$(history | tail -n $hirange)
for ((i=hilength; i>=0; --i)); do
if [ $i == 6 ]; then tput setaf 7; else tput setaf 6; fi;
tput cup $i 55;
printf "$hisstring" | tail -n "$(($i+$pos))" | head -n1 | cut -c1-105;
done; tput sgr0; tput rc;
}
我希望在命令行中输出突出显示的文本,因此我只需在按回车键执行命令之前输入回车键或编辑文本即可。
我还将临时绑定密钥esc以从命令行中删除代码(以及可能的其他操作以从历史列表中删除代码),同时重新绑定相同的密钥,以便随后绑定到其默认值。
但这部分我可以自己弄清楚。我所要求的只是这个 - 如何将字符串放入命令行?