在emacs中围绕选择包装文本

时间:2015-01-02 00:37:56

标签: emacs latex yasnippet

我想在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

我想让代码段工作,因为我可以修改它以便在其他环境中使用。

1 个答案:

答案 0 :(得分:2)

我刚刚写了一些初学者代码来解决这个问题。 它在https://github.com/abo-abo/latex-wrap。 它已经适用于您描述的特定情况, 您可以通过发布issues来帮助我扩展它。