Я хотел бы обернуть некоторый текст вокруг выделенного текста в emacs.Обтекание текста вокруг выделения в emacs
От выбора линий:
First item
Second item
Я хотел бы получить:
\begin{itemize}
\item First item
\item Second item
\end{itemize}
Использование C-c C-e
в AucTeX сворачивает выбор в одну строку:
\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
Вот ссылка на недавний пример Yasnippet, содержащий оператор if/then 'elisp', с вставкой, для которой требуется четыре обратных слэша, равная одной обратной косой черте - пример связан с LaTeX: http: //emacs.stackexchange .com/a/5536/2287 Это * не * использовать все, что требует AUCTeX - я БЕСПЛАТНО AUCTeX :). – lawlist
@Drew Не совсем, в результате отсутствует обратная косая черта '\ item'. – Christoph