Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在使用GNU屏幕时,如何避免在关闭后emacs(或vi)留在屏幕上?_Bash_Unix_Terminal_Gnu Screen - Fatal编程技术网

Bash 在使用GNU屏幕时,如何避免在关闭后emacs(或vi)留在屏幕上?

Bash 在使用GNU屏幕时,如何避免在关闭后emacs(或vi)留在屏幕上?,bash,unix,terminal,gnu-screen,Bash,Unix,Terminal,Gnu Screen,在常规bash会话中,如果我键入vi,或emacs-nw,然后退出或挂起它们,我将毫发无损地返回shell(之前键入的两个命令仍然可见)。外壳完好无损,好像我从未启动过emacs或vi。然而,当使用GNU Screen时,退出后,我仍然会看到vi/emacs与我正在做的任何事情,迫使我使用Screen scroll或history来回忆启动emacs/vi之前运行的最后一个命令。我如何关闭这种混乱行为?可能吗?您需要打开对备用屏幕的支持 您可以通过在.screenrc中添加以下行来完成此操作:

在常规bash会话中,如果我键入
vi
,或
emacs-nw
,然后退出或挂起它们,我将毫发无损地返回shell(之前键入的两个命令仍然可见)。外壳完好无损,好像我从未启动过
emacs
vi
。然而,当使用
GNU Screen
时,退出后,我仍然会看到vi/emacs与我正在做的任何事情,迫使我使用Screen scroll或history来回忆启动emacs/vi之前运行的最后一个命令。我如何关闭这种混乱行为?可能吗?

您需要打开对备用屏幕的支持

您可以通过在
.screenrc
中添加以下行来完成此操作:

altscreen on

来源:

之所以不受影响,是因为vi/emacs使用终端的备用屏幕来显示诅咒(该库允许用户在终端屏幕上的任意位置放置字符)。屏幕(1)程序已经在使用备用终端屏幕,默认情况下,不会为其内部运行的程序创建备用屏幕,以便通过诅咒访问

但是,您可以通过以下方式在屏幕中启用它:

   altscreen on
在~/.screenrc文件中

有关更多信息,请参阅屏幕手册页