我希望 Bash 在按下 时清除回滚历史记录Ctrl+L
,尤其是当我运行带有大量输出的命令时;我希望回滚到第一个输出行,而不会超出上一个输出。而且,开始一个新选项卡,然后切换回上一个选项卡并关闭它,这实际上不是一个选项;在我的笔记本电脑上,这是 、Ctrl+Shift+T
、Ctrl+Fn+PgDn
,Ctrl+D
输入起来有点麻烦。按照 中的建议如何真正清除终端?.bashrc
,我在文件的定义后添加了以下行PS1
:
PS1="\u@\h \w\n\$ "
bind -x '"\C-L": tput reset'
但是,我随后发现,在取消长时间运行的 Bash 命令后,终端在我输入时停止回显标准输入,并开始显示修改后的PS1
提示。我最终将范围缩小到按下Ctrl+L
,然后启动和中断长时间运行的命令(对于此示例find / | head
)。
hwalters@Wintermute ~
$
hwalters@Wintermute ~
$
hwalters@Wintermute ~
$ (press Ctrl+L)
hwalters@Wintermute ~
$ find / | head
/
/proc
/proc/fb
/proc/fs
/proc/fs/ext4
/proc/fs/ext4/dm-0
/proc/fs/ext4/dm-0/options
/proc/fs/ext4/dm-0/mb_groups
/proc/fs/ext4/dm-0/es_shrinker_info
/proc/fs/ext4/nvme0n1p2
hwalters@Wintermute ~
$ hwalters@Wintermute ~
$ hwalters@Wintermute ~
$ hwalters@Wintermute ~
$ hello
hwalters@Wintermute ~
$ world
hwalters@Wintermute ~
$
Enter
我列出了出错前后按几次的结果。请注意两行输出hello
和world
,它们是在我输入echo hello
和之后显示的echo world
;echo
命令和参数在我输入时没有显示,但已被执行。
注意,这确实不是如果我输入tput reset
而不是按Ctrl+L
,就会发生这种情况,所以这是输入和按键绑定的某种组合。我最初认为这可能是屏幕重置和我通常使用的彩色提示的组合,但在本例中,它也发生在原始提示中。有什么想法吗?
如果有任何区别,我在 Ubuntu(16.04)中使用 Gnome Terminal(3.18.3)。