3

我想在emacs中围绕选定的文本包装一些文本。

从选择的行中:

First item
Second item

我想得到:

\begin{itemize}
\item First item
\item Second item
\end{itemize}

在 AucTeX 中使用C-c C-e将选择折叠成一行:

\begin{itemize}
\item First item Second item
\end{itemize}

yasnippet 中的以下代码段:

# -*- mode: snippet -*-
# name : wrap item
# expand-env : ((yas-wrap-around-region nil) (item-string "\item  "))
# binding : C-M-z
# --
\begin{itemize}
`(let ((text (yas-selected-text))) (when text (replace-regexp-in-string "^" item-string text)))` $0
\end{itemize}

给出:

\begin{itemize}
item First item
item Second item
\end{itemize}

我尝试(item-string "\\item ")改用,但这给出了错误:

[yas] elisp error: Invalid use of '\' in replacement text

我想让片段工作,因为我可以修改它以在其他上下文中使用。

4

1 回答 1

2

我只是写了一些入门代码来以一般的方式解决这个问题。它位于https://github.com/abo-abo/latex-wrap。它已经适用于您描述的特定案例,您可以通过发布问题来帮助我扩展它。

于 2015-01-02T11:12:24.133 回答