Exception handling 在Vimscript中尝试catch
我试图捕捉Vim中的错误(E490),如下所示:Exception handling 在Vimscript中尝试catch,exception-handling,vim,Exception Handling,Vim,我试图捕捉Vim中的错误(E490),如下所示: :try | foldopen! | catch | | endtry 然而,当执行此操作时,Vim显示错误: Error detected while processing : E490: No fold found 我想打开所有折叠,如果有的话 有什么想法吗?看起来像个bug:您的版本显示错误 :execute 'try | foldopen! | catch | | endtry' 像 :echo 'try | foldopen! |
:try | foldopen! | catch | | endtry
然而,当执行此操作时,Vim显示错误:
Error detected while processing :
E490: No fold found
我想打开所有折叠,如果有的话
有什么想法吗?看起来像个bug:您的版本显示错误
:execute 'try | foldopen! | catch | | endtry'
像
:echo 'try | foldopen! | catch | | endtry'
没有褶皱
尝试以下解决方法:
:execute "try\n foldopen!\ncatch\nendtry'
顺便说一下,如果要忽略所有错误,有一种更好的方法:
:silent! foldopen!
请注意,如果存在重定向,它将不会从重定向中清除消息,而
try…catch
会清除消息。使用--remote silent调用vim时会是什么样子<代码>vim--远程选项卡静默“+${1};执行'try\nfoldopen!\ncatch\nendtry'“${2}”导致E481不允许范围
$1是行号$2是文件名。@Nickolay Kolev:\n
仅适用于双引号字符串。不要将它们更改为单引号,这不是python。问题似乎不在引号中:“+${1};execute\”try\nfoldopen\ncatch\nendtry \
的行为相同。@Nickolay Kolev:我没有注意到这一点:您使用+{cmd}
指定文件打开时应执行的命令,但您使用分隔命令
,而您应该使用|
。或者您可以将此移动到:execute
:“+execute\”+$1\ntry\nfoldopen\ncatch\nendtry\“”
。