2011-05-01 129 views
9

我想在Vim中捕獲錯誤(E490)是這樣的:的try-catch Vimscript中

:try | foldopen! | catch | | endtry 

不過,在執行此命令時,Vim顯示錯誤:

Error detected while processing : 
E490: No fold found 

我會喜歡打開所有褶皺,如果有任何摺疊。

任何想法?

回答

5

看起來像一個bug:您的版本顯示錯誤,

:execute 'try | foldopen! | catch | | endtry' 

的作用就像

:echo 'try | foldopen! | catch | | endtry' 

無褶皺。

嘗試以下解決方法:

:execute "try\n foldopen!\ncatch\nendtry' 

順便說一句,有一個更好的方式,如果你想忽略所有的錯誤:

:silent! foldopen! 

注意,它不會清除從重定向消息如果它存在,而try...catch會。

+1

當使用--remote-silent調用vim時,這看起來如何? 'vim --remote-tab-silent「+ $ {1};執行'try \ nfoldopen!\ ncatch \ nendtry'」「$ {2}」'會導致'E481 No range allowed'。 $ 1是行號$ 2是文件名。 – 2011-05-01 20:48:25

+0

@Nickolay Kolev:'\ n'只能用於雙引號字符串。不要將它們改爲單引號,它不是python。 – ZyX 2011-05-01 21:06:30

+0

看來問題不在引號中:'「+ $ {1};執行\」try \ nfoldopen!\ ncatch \ nendtry \「」'行爲相同。 – 2011-05-01 21:10:25