Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Exception handling 在Vimscript中尝试catch_Exception Handling_Vim - Fatal编程技术网

Exception handling 在Vimscript中尝试catch

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! |

我试图捕捉Vim中的错误(E490),如下所示:

: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\“”