我想在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
我想让代码段工作,因为我可以修改它以便在其他环境中使用。
答案 0 :(得分:2)
我刚刚写了一些初学者代码来解决这个问题。 它在https://github.com/abo-abo/latex-wrap。 它已经适用于您描述的特定情况, 您可以通过发布issues来帮助我扩展它。