在终端vim中,即使与vim -u NONE
一起投放,在呼叫system()
期间按下的所有按键也会被回复,每次呼叫system()
一次。要在vim中重现:
:call system("sleep 1")|call system ("sleep 1")|call system ("sleep 1")
在按下Enter键后立即按asdf
或其他任何内容,您应该看到它被回复3次。这并不可怕,但是角色经常会留下并要求:redraw!
摆脱它。
所以问题是,我该如何防止这种回声? :redraw!
不是我正在寻找的答案。我的特定用例是完整功能的一部分,重绘会导致闪光灯不适合我。
不起作用的事情:
silent! call system("sleep 1")
system("stty -echo; sleep 1")
答案 0 :(得分:0)
我可能错了,但我认为你无能为力。这是vim
实现的方式,这是一个问题,并且对UI进行懒惰重绘是其中的一部分。所以这不是一个错误,它是一个功能™©®
答案 1 :(得分:0)
我通过使用vim的python集成来进行系统调用。 Python在运行命令时不会回显按键。