Пользовательское форматирование кадров LaTeX (beamer) в Vim с помощью команды gq - PullRequest
9 голосов
/ 25 августа 2011

Я хочу использовать комбинацию клавиш gq в Vim для форматирования текста в моих слайдах Beamer LaTeX.

Например, я бы хотел gqap преобразовать это:

\begin{frame}{Some title}
\begin{itemize}\item first point
\item second point
\item etc. point \end{itemize} \end{frame}

в это:

\begin{frame}{Some title}
  \begin{itemize}
    \item first point
    \item second point
    \item etc. point  
   \end{itemize} 
\end{frame}

В частности, я хотел бы соблюдать следующие правила:

  • \item всегда начинается с новой строки
  • \begin и \end всегда начинаются с новой строки
  • \begin{frame} и \end{frame} всегда начинаются в столбце 1
  • окружения в средах с отступом 2 пробела
  • \item имеет отступ в 2 пробела в своей среде

Таким образом, мой основной вопрос относится к тому, как можно достичь вышеуказанного.

В качестве альтернативы, любые предложения по отправным точкам или полезные учебники будут наиболее полезными. Я также был бы заинтересован в любых комментариях относительно относительных достоинств formatexpr, formatprg или внутреннего форматирования для выполнения такого форматирования.

Ответы [ 2 ]

1 голос
/ 26 августа 2011

После небольшого поиска я нашел этот полезный ответ на Tex.SE на похожий вопрос . Он предоставляет специальную функцию для форматирования источника контекста, который может быть адаптирован к LaTeX.

Думаю, я бы предпочел что-то интегрированное со встроенной * VIM-функцией *. И для ответа все еще требуется немного работы для настройки с LaTeX, и я не уверен, что дает отступ. В любом случае, я подумала, что поделюсь этим, если это будет полезно другим.

0 голосов
/ 27 апреля 2012

почему бы не попробовать snipmate плагин

begin<tab>

до

begin{<cursor>env}                                                                                                                                                                         
    %text                                                                                                                                                                 
\end{env}
...