3

emacs で選択したテキストをテキストで囲みたいと思います。

行の選択から:

First item
Second item

私は取得したい:

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

C-c C-eAucTeX で使用すると、選択範囲が 1 行に折りたたまれます。

\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