2013-03-31 131 views
2

輸入多個命令我應該如何進入VIMVIM如何在命令提示符下

:let v:errmsg = "" 
:silent! /\cend of .*project gutenberg 
:if v:errmsg != "" 
:echo "Not found" 
:endif 

這不起作用以下是在命令提示符下一個字符串,沒有打印的信息。

:let v:errmsg = ""|:silent! /\cend of .*project gutenberg|:if v:errmsg != ""|:echo "Not found"|:endif 
+0

當沒有匹配時,你收到的信息有什麼問題? – romainl

回答

0

範圍搜索可能不是您的情況中的最佳選項。你可以使用

if !search('\cend of .*project gutenberg') | echo 'Not found' | endif 

如果你沒有更新最後的搜索模式。

+0

謝謝你,這是一個更簡單的解決方案,因爲它也重新定位提示符,如果它確實找到了它,這是我真正想從搜索中找到它,它更好地服務於我的目的。 – user985675

2

好了,問題是你在做正常的搜索。範圍搜索可以看到|作爲其參數的一部分,因此不能用於輸入另一個命令。因此,將它包裝成如下所示的exe文件:

let v:errmsg = ""|exe 'sil! /\cend of .*project gutenberg'|if v:errmsg != ""|echo "Not found"|endif 
+0

你在哪裏見過'正常'? '/ ...'搜索*範圍*,它的工作原理與':1'一樣,可以進入第一行。 – ZyX

+0

確實。我很困惑。 –

+0

謝謝,解決了這個問題。我需要將其包含在一個鍵映射中,並且我發現自己不斷受到命令序列的困擾,命令序列將在提示符下單獨輸入,但當以字符串形式傳送到vimrc時會失敗。但顯然這個問題的根本原因是vim在每種情況下的模式? – user985675

相關問題