我想在emacs的選定文字周圍換一些文字。在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
我想有段工作,因爲我可以修改它也用於其他情況。
建議:做你需要做的手動,但記錄你做*鍵盤宏*。根據需要多次重播宏。從你想要的東西的外觀(但這不是很清楚),似乎你不需要更多的東西。 – Drew
下面是一個包含if/then'elisp'語句的Yasnippet的最近示例的鏈接,其中包含一個insert,它需要四個反斜槓等於一個反斜槓 - 該示例與LaTeX相關:http://emacs.stackexchange .com/a/5536/2287它不*使用任何需要AUCTeX的東西 - 我是AUCTeX FREE :)。 – lawlist
@Drew不完全,結果中缺少'\ item'的反斜槓。 – Christoph