有没有办法在执行外部命令后禁用“按ENTER或键入命令继续”提示?
编辑:找到一种解决方法:在我的.lvimrc中的快捷方式中添加额外的<CR>
。
map <F5> :wall!<CR>:!sbcl --load foo.cl<CR><CR>
有更好的想法吗?
答案 0 :(得分:62)
我不确定如何使用一个命令全局地执行此操作:
:silent !<command>
请务必在silent
答案 1 :(得分:48)
找到一个解决方法:添加额外的<CR>
到地图命令。
map <F5> :wall!<CR>:!sbcl --load foo.cl<CR><CR>
答案 2 :(得分:28)
:help hit-enter
答案 3 :(得分:17)
这就是我如何处理通过静音在文本模式vim中屏幕运行外部程序的问题(根据我的经验,gvim不会遇到这个问题):
command! -nargs=1 Silent
\ | execute ':silent !'.<q-args>
\ | execute ':redraw!'
使用它代替常规静默命令:
:Silent top
答案 4 :(得分:12)
答案 5 :(得分:11)
vimrc 文件
中可能存在语法错误答案 6 :(得分:7)
安东尼的回答把我带到了正确的地方,我能够配置gvim不要停止大量的消息。
我将set shortmess=aoOtI
添加到我的gvimrc文件中
在:help shortmess
提供给您的帮助页面中对此进行了解释
字母表示您不希望看到的消息类别,或者希望vim截断以避免命中输入停止。
我之前通过在gvimrc中设置一个带columns=130
的宽初始窗口来管理这个,所以很少有消息会溢出它并且需要烦人的,筋疲力尽,需要输入。
答案 7 :(得分:3)
在屏幕清除之前进行重绘也可以。 这就是我所拥有的:
exe 'ls'
exe 'b4' "This redraws, so the Prompt is triggered
但这不会触发提示:
exe 'ls'
redraw
exe 'b4'
答案 8 :(得分:2)
您可以使用:
call feedkeys(" ")
例如:
function! Interactive_Questions()
echo "Question 1:"
let response1 = getchar()
echo "Question 2:"
let response2 = getchar()
" Do something
" Without the next line, you would have to hit ENTER,
" even if what is written (the questions) has no interest:
call feedkeys(" ")
endf
答案 9 :(得分:2)
我的案子(自动命令)set shortmess+=F
成功了。
:h简写
F在编辑文件时不提供文件信息,例如:silent
答案 10 :(得分:0)
我有类似的问题,但是当我运行argdo来替换多个文件中的相同字符串时,例如。
import 'script!jquery'
import 'script!what-input'
import 'script!foundation-sites'
我经常不得不按下页面。
您可以在运行脚本之前设置以下选项,以便只有最终提示而不是许多提示
argdo %s/something/Something/eg|update
答案 11 :(得分:0)
但是如果从vim命令行执行命令。然后它有点棘手。您可以在实际命令之前添加关键字silent
。执行命令后,它会自动返回到vim窗口。但您仍然需要手动执行redraw
,因为需要重新绘制一些像NERD_Tree这样的窗口。
对于这种情况,请尝试按照vim帮助文档中的说明进行操作:
减少点击输入提示的次数:
- 设置
- 将标记添加到&#39; shortmess&#39;。
- 重置&#39; showcmd&#39;和/或&#39;标尺&#39;。
This link提供了另一条出路。把它放到你的vimrc文件
中command! -nargs=1 Silent \ execute 'silent !' . \ | execute 'redraw!'
然后你可以像常规命令一样使用:Silent command
。
答案 12 :(得分:0)
如果您的错误是由E303引起的,则在:messages
文件中创建一个临时目录可以解决该问题。
打开任何文件后,编写并输入:
.vimrc
如果有错误,它将提示。
如果看到E303(错误303)“无法为“ {文件名}”打开交换文件,则无法恢复”,则可能表明存在尝试恢复交换文件的旧尝试(很可能丢失或不存在)在系统中。
要解决此问题,请在.vimrc
文件中创建一个临时目录。
要查找$ locate .vimrc
/root/.vimrc
文件的位置,请键入并输入以下内容:
$ vi .vimrc
打开文件set directory=.,$TEMP
将此添加到文件末尾:
:wq
使用$ . /etc/profile
保存并关闭
最后,使用以下方法重新加载配置文件:
<input type="button" class="single_add_to_cart_button button alt" value="metin1" onclick="searchin(this)" />
function searchin(param) {
metin = $('input[name="+ param.val() + "]').val();
$.post('/wp-content/plugins/ajax-test/SearchByNumberNew.php', {yazi2: metin}, function (gelen_cevap) {
$('.cevap').html(gelen_cevap);
});
}
尝试使用VI打开任何文件。该问题应得到解决。
答案 13 :(得分:0)
在我这边,解决方案是to use silent
more frequently in a command chain。
具体来说,.vimrc
之前:
nnoremap M :silent make\|redraw!\|cc<CR>
已更改为:
nnoremap M :silent make\|silent redraw!\|silent cc<CR>
在此之前,“按ENTER”并不总是显示出来,但是却很烦人。其他silent
个解决了这个问题。 (看来silent
上不需要redraw!
,因为:cc
导致了“ Press ENTER”消息。)
此更改的缺点是不再显示
:cc
的输出, 所以你必须猜测是什么错误。 little tweak可以解决此问题:nnoremap M :silent make\|redraw!\|cw\|silent cc<CR>
这会自动导致错误的QuickFix列表(
make
的输出) 出现(通过vim-magic,如果没有错误,则消失)。
仅供参考:
此M
映射的动机是只需在正常模式下按M
即可:
make
时,一切都受到git
的控制)make
我的Makefile
通常是这样构造的,只花了不到一秒钟的时间。
稍作调整,它也可以应用于非C
类型的工作负载:
在.vimrc
中添加
set efm+=#%t#%f#%l#%c#%m#
这允许vim
解释如下消息,例如:cc
(显示错误):
#E#file#line#column#message#
#W#file#line#column#message#
#I#file#line#column#message#
({E
个错误,W
个警告,I
nfo,基于vim
魔术)
Example how to use this for Python scripts。 (抱歉,这里没有副本,这是另一个故事。)
答案 14 :(得分:0)
在gvim
上,如果您设置了guioptions+=!
(在!
中添加了guioptions
),是因为这个原因。此选项(!
使gvim
在外部终端上执行一些命令(这些命令支持更多功能,例如颜色和许多其他功能)。
您可以使用:set guioptions-=i
尝试一下,看看是否适合您。
答案 15 :(得分:0)
如果我保存的文件位于我对目录没有写入权限的目录中,则会发生这种情况。我在目录上做了一个chmod 777(我已经对文件本身有写权限)和&#34;按ENTER键&#34;消息不再显示。
答案 16 :(得分:0)
您可以在 vimrc
下面写 2 行以禁用来自 vim 的所有消息
set shortmess=
set cmdheight=2
这对我有用,希望你能解决问题