欧洲货币联盟+;ssh清除控制台历史记录
我使用的是ConEmu,我对它非常满意,除了这样一个事实:如果我使用PuTTY进行SSH访问,我可以在远程机器上运行命令,比如vim、nano、mcedit或其他打开某种curses界面的命令,我可以看到控制台命令的历史记录,但是当我使用CygWin SSH client或OpenSSH for Windows时,在运行vim/nano/mcedit/whates之后,我再也看不到命令历史记录了 当我退出这些程序时(vim中的:wq,mcedit中的Esc键,nano中的Ctrl^X),我可以看到前面执行的所有命令,如下所示(如果我使用PuTTY):欧洲货币联盟+;ssh清除控制台历史记录,ssh,conemu,Ssh,Conemu,我使用的是ConEmu,我对它非常满意,除了这样一个事实:如果我使用PuTTY进行SSH访问,我可以在远程机器上运行命令,比如vim、nano、mcedit或其他打开某种curses界面的命令,我可以看到控制台命令的历史记录,但是当我使用CygWin SSH client或OpenSSH for Windows时,在运行vim/nano/mcedit/whates之后,我再也看不到命令历史记录了 当我退出这些程序时(vim中的:wq,mcedit中的Esc键,nano中的Ctrl^X),我可以看
主机$whoami
用户
主机$vim
…在vim中执行某些操作,然后按:wq
主机$whoami
用户
主机$vim
主机$
===切割===
前面的所有命令(whoami)都是可见的。但是,如果我运行ConEmu,然后从CygWin使用SSH客户端(或OpenSSH客户端,没关系),则会发生以下情况:
用户
主机$vim
…在vim中执行某些操作,然后按:wq
主机$
===切割===
好像没有人被处决。mcedit、nano或任何其他类似“屏幕”的程序也会发生同样的情况。在Midnight Commander中使用Ctrl-O也会发生同样的情况,在PuTTY中,一切都很好,但是当在ConEmu(或OpenSSH Windows客户端)中使用CygWin的ssh并运行Midnight Commander时,每个Ctrl-O只会显示一个空的历史记录。好像以前什么都没打过似的。那真的一点也不好
有什么办法可以解决这个问题吗?PuTTY.exe的标准
术语环境变量是xterm
,这主要适用于Cygwinssh.exe
。但是,ssh.exe
的一个更好的术语是cygwin
当您使用Cygwinssh.exe
连接到另一个系统时,Cygwin将处理转义序列,而不是ConEmu。事实上,无论您是在ConEmu内部还是外部运行ssh.exe
,都会得到相同的行为。因此,这个问题实际上与ConEmu无关,至少与它的ANSI处理器无关
解决方案是将cygwin
用于远程系统上的术语
环境变量。事实上,SSH客户端和服务器会自动为您完成这项工作。但是,可能是您在.bash\u配置文件中意外地用sayxterm
覆盖了提供的TERM
变量。在这种情况下,退出编辑器后恢复屏幕缓冲区的转义序列对于Cygwin ANSI处理器来说是不正确的
您可以执行此测试以检查这是否解决了您的问题:
$ export TERM=xterm
$ vim
$ # the screen before is cleared
$ export TERM=cygwin
$ vim
$ # the screen buffer is restored