Josh Brunton Asked: 2025-04-04 22:29:54 +0800 CST2025-04-04 22:29:54 +0800 CST 2025-04-04 22:29:54 +0800 CST 如果不调用清除,Ctrl+L 在“后台”会做什么? 772 我注意到使用 Ctrl+L 清除终端与使用 clear 命令(来自 ncurses 6.5.20240427)有一些区别。 似乎清除命令会擦除终端中的每个字符,将光标设置在左上角,然后输入提示。 Ctrl+L 似乎可以做同样的事情,但我的提示的上面两行(以及它上面的空白行)没有显示。 有趣的是,如果我在提示后输入了某些内容,它会保留该内容 - 不仅仅是提示所在的行,还包括提示之后的所有内容。 我仔细研究了一下man clear,没有找到可以复制这种行为的选项,那么 Ctrl+L 键到底在后台做什么呢?它是在调用一个程序,还是大多数终端仿真器内置的一种行为,具体实现到特定的终端? terminal 1 个回答 Voted Best Answer Stephen Kitt 2025-04-04T22:44:13+08:002025-04-04T22:44:13+08:00 在Bash和Zsh中,CtrlL它由 shell 处理,不涉及clear命令。在 Bash 中,它被定义为 清除屏幕,在顶部重新打印当前行。 这符合你所描述的行为;在 Zsh 中它被映射到clear-screen, 清除屏幕并重新绘制提示。 这包括多行提示(因此与 Bash 不同,多行提示的当前行不会出现在屏幕顶部,而是提示的开头会出现在屏幕顶部)。
在Bash和Zsh中,CtrlL它由 shell 处理,不涉及
clear
命令。在 Bash 中,它被定义为这符合你所描述的行为;在 Zsh 中它被映射到
clear-screen
,这包括多行提示(因此与 Bash 不同,多行提示的当前行不会出现在屏幕顶部,而是提示的开头会出现在屏幕顶部)。