2009-05-20 70 views
78

是否有任何方法來禁用執行外部命令後出現的「按ENTER鍵或鍵入命令以繼續」提示?如何在Vim中禁用「按ENTER鍵或輸入命令以繼續」提示?

編輯:找到一種解決方法:在我的.lvimrc中添加一個額外的<CR>到快捷方式。

map <F5> :wall!<CR>:!sbcl --load foo.cl<CR><CR> 

有沒有更好的辦法?

+9

在Windows 7上,您經常會因爲「無法打開交換文件」錯誤而得到此提示,這些錯誤已經打印出來但您沒有看到它們,從而導致提示。解決方法是將`set dir = $ TEMP`放入你的vimrc中。這告訴vim爲其臨時文件使用正確的臨時文件夾。這又會修復錯誤並刪除「按回車」提示。 – Lucas 2011-07-27 18:47:53

回答

42

找到了一個解決方法,包括空間:添加一個額外的<CR> 給map命令。

map <F5> :wall!<CR>:!sbcl --load foo.cl<CR><CR> 
53

我不知道該怎麼做,雖然全球範圍內爲一個命令:

:silent !<command> 

確保後silent

+2

不幸的是對我不是很有幫助,它弄亂了屏幕,我不得不按下Ctrl-L ......這比按空格更令人討厭。 – 2009-05-20 23:59:05

+1

雖然爲我的grep腳本工作過! – 2009-07-23 19:58:45

+4

按照下面的評論者(誰建議在命令結尾添加額外的),使用silent時,可以添加額外的,以便您不必手動按下它。然後,與屏幕一起工作。 – 2011-09-03 09:52:13

15

這是我如何處理,通過無聲弄亂文本模式的vim的屏幕上運行外部程序的問題(在我的經驗,GVIM不存在這個問題):

command! -nargs=1 Silent 
\ | execute ':silent !'.<q-args> 
\ | execute ':redraw!' 

用它代替常規的無聲命令:

:Silent top 
3

畫面清晰的作品太前把一個重繪。 這裏是我有什麼:

exe 'ls' 
exe 'b4' "This redraws, so the Prompt is triggered 

但是,這不會觸發提示:

exe 'ls' 
redraw 
exe 'b4' 
8

這可能是在的vimrc文件

11

語法錯誤設置cmdheight 2,在我的vimrc(:e $MYVIMRC):

:set cmdheight=2 

更多信息here

6

anthony的答案把我帶到了正確的地方,我能夠配置gvim不會停留在很多消息上。
我添加了設置shortmess=aoOtI到我的gvimrc文件。
:help shortmess的幫助頁面中對此進行了說明。
這些字母表示你不想看到的消息類,或者希望vim截斷以避免命中,輸入 stop。
我之前通過在gvimrc中設置了一個廣泛的初始窗口columns=130來處理這個問題,所以很少有消息會溢出它,並且需要煩人,耗盡,需要進入。

2

這就是我如何在棘手的情況下運行外部命令,而沒有「按ENTER鍵」。不像:silent,我仍然可以看到命令輸出。

命令行

:exe ":!<command>" | redraw 

腳本/功能

exe ':!<command>' 
redraw 

映射與<expr>

map <expr> <F5> ":exe ':!<command>'\n:redraw\<CR>" 

映射與<expr>調用一個函數

map <expr> <F5> MyFoo() 
fu! MyFoo() 
    return ":exe ':!<command>' | redraw\<CR>" 
endf 
1

您可以使用:

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 
0

這發生在我身上,如果我保存的文件是在我沒有對目錄的寫入權限的目錄中。我在目錄上做了一個chmod 777(我已經擁有文件本身的寫權限),並且「Press ENTER」消息不再顯示。

0

我有一個類似的問題,但是當我運行一個argdo替換多個文件例如相同的字符串,

argdo %s/something/Something/eg|update 

我經常不得不按向下翻頁。

您可以運行該腳本之前,這樣只有最後的提示,而不是許多提示

:set nomore 
0
  • 如果您使用的是鍵映射那麼你的生命可以被更容易設置下列選項在你的命令結尾添加更多 - 但通常2次就足夠了。
  • 但是,如果您從vim命令行執行命令。然後它有點棘手。您可以在實際執行命令之前添加關鍵字silent。它會在命令執行後自動回到vim窗口。但是仍然需要手動執行redraw,因爲有些窗口像NERD_Tree需要重繪。

    • 對於這種情況,嘗試按照從VIM幫助文檔的說明:

      要減少數量hit-enter提示:

      • 把 'cmdheight' 2或更高。
      • 添加標記爲'shortmess'。
      • 重設'showcmd'和/或'標尺'。
    • This link提供了另一種方式。要把它放到你的vimrc文件

       
      command! -nargs=1 Silent 
      \ execute 'silent !' . 
      \ | execute 'redraw!' 
      

然後你可以使用:Silent command像一個普通的命令。

相關問題