在终端vim中,如何防止通过system()运行shell命令时出现重影回音
在终端vim中,即使在使用在终端vim中,如何防止通过system()运行shell命令时出现重影回音,shell,vim,Shell,Vim,在终端vim中,即使在使用vim-u NONE运行时,在调用system()期间按下的所有键都会回显,每次调用system()都会回显一次。要在vim中复制,请执行以下操作: :call system("sleep 1")|call system ("sleep 1")|call system ("sleep 1") 点击回车键后,立即按asdf或其他任何键,您应该会看到它被回声反射了3次。这并不可怕,但重要的是角色经常会停留在周围,需要重新绘制以摆脱 所以问题是,我如何防止这种回声:重画不是
vim-u NONE
运行时,在调用system()
期间按下的所有键都会回显,每次调用system()
都会回显一次。要在vim中复制,请执行以下操作:
:call system("sleep 1")|call system ("sleep 1")|call system ("sleep 1")
点击回车键后,立即按asdf
或其他任何键,您应该会看到它被回声反射了3次。这并不可怕,但重要的是角色经常会停留在周围,需要重新绘制代码>以摆脱
所以问题是,我如何防止这种回声<代码>:重画代码>不是我想要的答案。我的特定用例是一个完整函数的一部分,重画会导致一个不适合我的闪光
不起作用的事情:
安静!呼叫系统(“睡眠1”)
system(“stty-echo;sleep 1”)
我可能错了,但我认为你对此无能为力。在这里,实现vim的方式是一个问题,对UI进行惰性重画是其中的一部分。所以这不是一个bug,而是一个特性™©® 我通过使用vim的python集成进行系统调用来解决这个问题。Python在运行命令时不会回显按键。您不必执行
:重画代码>,但只要控制LYeah,延迟重画就可以了,我只想首先抑制缓冲输出。您可能是对的,但这可能是不可能的,vim可能只是在进入系统调用时将terminal mode设置为echo,这将使它在长时间运行时的行为与bash一样。