Шаблон Vim для замены всех экземпляров vspace - PullRequest
0 голосов
/ 21 марта 2011

В технических документах, набираемых с использованием латекса, мы обычно используем множество приемов «vspace», чтобы правильно расположить бумагу в пределах ограничения страницы.Конечно, когда шрифт или количество столбцов изменяется, они все ломаются.Как можно заменить все экземпляры таких элементов:

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

на

\vspace{0mm}

с использованием шаблона vim?

Ответы [ 5 ]

3 голосов
/ 21 марта 2011

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

ключ:

  • %: поиск шаблона по всем строкам в файле.
  • vspace{[^}]\+}: поиск по запросу "vspace"{1 или более символов, кроме '}'} "
1 голос
/ 21 марта 2011

Одним из решений, которое не зависит от vim, является определение следующего

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

, затем, когда вы хотите изменить его на 0 мм, вы просто заменяете его на

\newcommand{\myvspace}[1]{\vspace{0mm}}
0 голосов
/ 21 марта 2011

Несколько других ответов здесь будут слишком жадными, если в той же строке после цели } есть еще }.Следующее должно исправить это:

:%s/vspace{\zs[^}]\+\ze}/0mm/g
0 голосов
/ 21 марта 2011
:%s#\\vspace{\zs.*\ze}#0mm#g

Эта команда выполняет работу?

0 голосов
/ 21 марта 2011

Мне кажется, это работает:

:%s/\\vspace{.*}/\\vspace{0mm}/
...