写于:2018-09-06		最近一次更新:2018-09-06

Intent:

按 Ctrl + l 彻底清理bash屏幕的内容,使翻页时不会出现历史信息

Trouble:

bash默认的清屏动作 Ctrl + l 以及外部命令 clear 看上去是把屏幕清理干净了, 但是往上翻页时仍然会出现历史信息,清屏不彻底;另一个外部命令 reset 可以 满足效果但执行时间有点慢,给人卡顿不顺畅的感觉

Oneway:

bind -x '"\C-l":"printf \\033c"' 在家目录下的 .bash_profile 文件中加入上面这一行即可, 以后打开 新的 bash环境时,按 Ctrl + l 可以彻底清理bash屏幕的所有历史信息

Details:

bind 是bash内置的shell命令,可以用来绑定快捷键和命令 printf \\033c 的作用是使兼容VT的终端重绘屏幕 printf 是bash内置的shell命令,\033c等价于ESC c 而ESC c 在linux终端的控制字符转义序列里表示重绘屏幕 两个\\中的前一个\是为了将后一个\转义成真实需要的字符