Ctrl+L 和 Cmd+K 清除终端屏幕有什么区别?

Lan*_*ine 10 terminal keyboard-shortcuts macos

我必须意识到这两个键盘快捷键都实现了完全相同的目标:清除 OS X 中的终端屏幕。

我能看到的唯一明显区别是Cmd ?+K快捷方式实际上看到进入Edit菜单栏中的选项卡,但Ctrl+L没有,清楚地表明正在发生不同的事情。

使用这些不同的快捷方式有什么不同?为什么有两个清除屏幕的快捷方式,这个“2 个快捷方式 - 1 个结果”是 OS X 中的通用主题吗?

Nic*_*sso 8

一个区别是 Cmd+K 清除回滚缓冲区以及屏幕。Ctrl+L 只清除屏幕,有效地将屏幕上的内容“向上”移动到回滚缓冲区中。

另一个区别是 Ctrl+L 由终端内运行的进程执行。例如,bash 将清除屏幕并重绘提示,包括任何未完成的命令。其他程序可能不执行任何操作,或者可能在不清除屏幕的情况下刷新屏幕。

另一方面,Cmd+K 由终端本身执行,无论窗口中正在运行什么,因此它可能会隐藏程序的输出。

有两个快捷方式(或更多),因为您正在与两个程序交互,终端和其中运行的任何进程。我不会说这是典型的 OS X。相反,它在任何多层计算环境中都很常见。您必须(仅)运行 DOS(没有任何 TSR)才能体验所有键盘快捷键都由单个应用程序解释的环境。但由于这种情况下的两个捷径做不同的事情,重叠实际上只是表面的。例如,Cmd+w 和 Cmd+q 对某些用户来说可能看起来做同样的事情,但实际上,它们是不同的。Ctrl+L 和 Cmd+K 也是如此。