如何在Vim中禁用"按ENTER或键入命令继续"提示?

Joh*_*ski 95 vim

有没有办法禁用执行外部命令后出现的"按ENTER或键入命令继续"提示?

编辑:找到一个解决方法:<CR>在我的.lvimrc中添加一个额外的快捷方式.

map <F5> :wall!<CR>:!sbcl --load foo.cl<CR><CR>
Run Code Online (Sandbox Code Playgroud)

有更好的想法吗?

Tab*_*tha 64

对于一个命令,我不确定如何在全局范围内执行此操作:

:silent !<command>
Run Code Online (Sandbox Code Playgroud)

请务必在后面加一个空格 silent

  • 与下面的评论者一致(谁建议在命令末尾添加额外的<CR>),当使用静音时,您可以添加额外的<Cl>,这样您就不必手动按下它.适用于屏幕,然后. (5认同)
  • 只需使用:silent!命令,然后:重绘!之后 - 我认为它不会自动执行此操作,因为脚本可能会在屏幕上执行您想要保留的内容,例如,时钟或其他一些状态监控事物......只是一个猜测 (3认同)
  • 是的..它也把我的屏幕弄乱了。`:redraw!` 选项解决了这个问题。双`&lt;cr&gt;` 可能是类似的。并且不那么复杂 (3认同)
  • 不幸的是,对我来说不是很有帮助,它弄乱了屏幕,我必须按Ctrl-L ...这比压缩空间更烦人. (2认同)

Joh*_*ski 54

找到一个解决方法:<CR> 在map命令中添加一个额外的.

map <F5> :wall!<CR>:!sbcl --load foo.cl<CR><CR>
Run Code Online (Sandbox Code Playgroud)

  • 永远不会想到这一点。绝对辉煌​​! (2认同)
  • 非常简单。超级有效! (2认同)

ant*_*ony 30

:help hit-enter
Run Code Online (Sandbox Code Playgroud)

  • 来自':help hit-enter'的哪些信息可以回答这个问题?我找不到它. (32认同)
  • 我很好奇为什么有人对这个答案投了反对票,因为`:help hit-enter` 提供了一些关于“按 ENTER...”提示的相当有用的背景信息。介意解释一下吗? (2认同)

emi*_*hev 17

这就是我如何处理通过静音在文本模式vim屏幕上运行外部程序的问题(根据我的经验,gvim没有遇到这个问题):

command! -nargs=1 Silent
\ | execute ':silent !'.<q-args>
\ | execute ':redraw!'
Run Code Online (Sandbox Code Playgroud)

使用它代替常规静默命令:

:Silent top
Run Code Online (Sandbox Code Playgroud)


Tan*_*ash 13

cmdheight在我的vimrc(:e $MYVIMRC)中设置为2 :

:set cmdheight=2
Run Code Online (Sandbox Code Playgroud)

更多信息在这里.


8.8*_*8.8 11

它可能是vimrc文件中的语法错误

  • 这个.我在.vimrc文件中使用了`set number`然后`set syntax`.一旦我删除了'set syntax`,Vim就不再提示我了. (4认同)

svl*_*sov 9

这就是我在没有“按 ENTER”键的情况下在棘手的场景中运行外部命令的方式。与 不同:silent,我仍然可以看到命令输出。

命令行

:exe ":!<command>" | redraw
Run Code Online (Sandbox Code Playgroud)

脚本/函数

exe ':!<command>' 
redraw
Run Code Online (Sandbox Code Playgroud)

映射 <expr>

map <expr> <F5> ":exe ':!<command>'\n:redraw\<CR>"
Run Code Online (Sandbox Code Playgroud)

<expr>调用函数的映射

map <expr> <F5> MyFoo()
fu! MyFoo()
    return ":exe ':!<command>' | redraw\<CR>"
endf
Run Code Online (Sandbox Code Playgroud)


Jua*_*nus 7

安东尼的回答把我带到了正确的地方,我能够配置gvim不要停止大量的消息.
我添加了set shortmess=aoOtI到我的gvimrc文件.
在提供给您的帮助页面中对此进行了解释:help shortmess.
字母表示您不希望看到的消息类别,或者希望vim截断以避免命中输入停止.
之前我通过columns=130在gvimrc中设置一个宽的初始窗口来管理这个,所以很少有消息会溢出它并且需要烦人的,用尽,需要按回车.