在我的.gvimrc裏,我有以下行:如何映射密鑰以執行程序,並在GVim中顯示其輸出?
map <f4> :!./%<
上的源文件,我必須按F4,然後進入,但它工作正常,顯示輸出,並掛起,直到我再次按下Enter 。
如果我改變它:
map <f4> :!./%< <CR>
它的行爲顯示輸出,但不等到我按回車鍵(等輸出變得無法讀取)。
有沒有什麼方法可以顯示程序的輸出,並且直到按下回車鍵,而不必按命令的之前的輸入,而不必打開一個單獨的窗口?
在我的.gvimrc裏,我有以下行:如何映射密鑰以執行程序,並在GVim中顯示其輸出?
map <f4> :!./%<
上的源文件,我必須按F4,然後進入,但它工作正常,顯示輸出,並掛起,直到我再次按下Enter 。
如果我改變它:
map <f4> :!./%< <CR>
它的行爲顯示輸出,但不等到我按回車鍵(等輸出變得無法讀取)。
有沒有什麼方法可以顯示程序的輸出,並且直到按下回車鍵,而不必按命令的之前的輸入,而不必打開一個單獨的窗口?
您的第二個映射應該可以正常工作。有時候這個問題是由於在映射結尾處有一個額外的空間而引起的。
請參閱:help redir
。您可以將該輸出重定向到一個寄存器並將其轉儲到緩衝區中。
爲了讓你瞭解它是如何工作的,我在我的vimrc中查看了:g/
的結果。
"" Puts the last g search command in a new buffer -- clobbers your c buffer
cabbrev what :redir @c<CR>:g//<CR>:redir END<CR>:new<CR>:put! c<CR><CR>
我試過了你的命令,gViM等我按下Enter,這樣我就可以讀取輸出了。 gViM的版本是什麼?你也可以檢查':map'來查看是否沒有衝突的映射。 – Pikrass 2010-06-24 14:25:05
@Pikrass除非你確定要使用'map',否則最好不要在所有情況下檢查':map'是否存在衝突的映射,而是使用'* noremap'。 – ZyX 2010-06-24 18:55:59
Fixman如果將'map'改爲'noremap'無效,請發佈':set'(不帶參數)的輸出。可能有一些選項可以抑制«hit enter»提示。 – ZyX 2010-06-24 18:59:17