2011-03-21 2 views
0

Dans les documents techniques composés avec du latex, nous utilisons généralement beaucoup d'astuces "vspace" pour obtenir le papier à disposer correctement dans la limite de la page. Bien sûr, lorsque la police ou le nombre de colonnes change, ils se cassent tous. Qu'est-ce qu'un bon moyen de remplacer toutes les occurrences d'articles comme celui-ci:Vim pattern pour remplacer toutes les occurrences de vspace

\vspace{3.4mm} 
\vspace{2in} 
\vspace{-1.2in} 
\vspace{-3mm} 

avec

\vspace{0mm} 

en utilisant un modèle de vim?

Répondre

3

%s/vspace{[^}]\+}/vspace{0mm}/g

clé:

  • %: recherche de motif sur toutes les lignes dans le fichier.
  • vspace{[^}]\+}: recherche "vspace {1 ou plus de caractère à l'exception '}'}"
+0

Serait-il la peine de changer cela '% s/vspace {[^}] \ +}/vspace {0 mm}/g' pour empêcher l'appariement avide de la dernière'} ' dans la ligne? – PDug

+0

@PDug: Comme noté par vous et d'autres (@Randy Morris), le modèle devrait être modifié pour ne pas être trop gourmand. J'ai mis à jour ma réponse. Je vous remercie. –

0

Cela semble fonctionner pour moi:

:%s/\\vspace{.*}/\\vspace{0mm}/ 
0
:%s#\\vspace{\zs.*\ze}#0mm#g 

Est-ce que cette commande faire le travail?

1

Une solution qui ne dépend pas de vim est de définir les éléments suivants

\newcommand{\myvspace}[1]{\vspace{#1}} 

alors quand vous voulez changer pour vous 0mm remplacer tout ce par

\newcommand{\myvspace}[1]{\vspace{0mm}} 
+0

Le but de tout remettre à zéro était de faire en sorte que le document soit composé de manière raisonnable afin que je puisse y retourner et les retoucher manuellement de nouveau. Merci quand même! –

0

Quelques-unes des autres réponses ici sera trop gourmand dans le cas il y a un autre } sur la même ligne après la cible }. Ce qui suit devrait fixer que:

:%s/vspace{\zs[^}]\+\ze}/0mm/g 
Questions connexes