2011-05-01 10 views
9

Estoy tratando de atrapar un error (E490) en Vim como esto:try-catch en Vimscript

:try | foldopen! | catch | | endtry 

Sin embargo, al ejecutar esto, Vim muestra el error:

Error detected while processing : 
E490: No fold found 

lo haría les gusta abrir todos los pliegues, si hay alguno presente.

¿Alguna idea?

Respuesta

5

Parece que un error: la versión muestra un error,

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

actúa como

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

sin pliegues.

Pruebe la siguiente solución:

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

Por cierto, hay una manera mejor si desea ignorar todos los errores:

:silent! foldopen! 

Tenga en cuenta que no va a purgar los mensajes de redirección si está presente, mientras que try...catch lo hará.

+1

¿Cómo se vería esto al invocar vim con --remote-silent? 'vim --remote-tab-silent" + $ {1}; execute 'try \ nfoldopen! \ ncatch \ nendtry' "" $ {2} "' hace 'E481 No hay rango permitido'. $ 1 es un número de línea $ 2 es un nombre de archivo. –

+0

@Nickolay Kolev: '\ n' solo funciona en cadenas de comillas dobles. No los cambie a comillas simples, no es python. – ZyX

+0

Parece que el problema no está en las comillas: '" + $ {1}; ejecutar \ "try \ nfoldopen! \ Ncatch \ nendtry \" "' se comporta de forma idéntica. –

Cuestiones relacionadas