2011-05-01 8 views
9

Je suis en train de rattraper une erreur (E490) dans vim comme ceci:Try-catch dans Vimscript

:try | foldopen! | catch | | endtry 

encore, lors de l'exécution cela, Vim montre l'erreur:

Error detected while processing : 
E490: No fold found 

Je voudrais aime ouvrir tous les plis s'il y en a.

Des idées?

Répondre

5

On dirait un bug: votre version affiche une erreur,

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

agit comme

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

sans plis.

Essayez la solution suivante:

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

Par ailleurs, il y a une meilleure façon, si vous voulez ignorer toutes les erreurs:

:silent! foldopen! 

Notez qu'il ne sera pas purger les messages de redirection s'il est présent, tandis que try...catch sera.

+1

À quoi cela ressemblerait-il en appelant vim avec --remote-silent? 'vim --remote-tab-silent" + $ {1}; exécute 'try \ nfoldopen! \ ncatch \ nendtry' "" $ {2} "' provoque 'E481 Aucune plage autorisée'. $ 1 est un numéro de ligne $ 2 est un nom de fichier. –

+0

@Nickolay Kolev: '\ n' ne fonctionne que dans les chaînes entre guillemets. Ne les changez pas en guillemets simples, ce n'est pas python. – ZyX

+0

Il semble que le problème ne soit pas dans les guillemets: '" + $ {1}; execute \ "try \ nfoldopen! \ Ncatch \ nendtry \" "' se comporte de manière identique. –

Questions connexes