Навигация по файлу с помощью helm
Я пытаюсь настроить функцию с помощью helm для навигации по файлу beamer, следуя предложению по адресу: " http://blog.jenkster.com/2013/10/a-tip-for-navigating-clojure-files-in-emacs.html". Я старался:
(defun helm-beamer-headlines ()
"Display headlines for the current Beamer file."
(interactive)
(helm-mode t)
(helm :sources '(((name . "Beamer Headlines")
(volatile)
(headline "^\\s\|^\\f")))))
показывать только строки, начинающиеся с \f и \s (соответствующие командам секционирования и фрейма), и хотя регулярное выражение работает с поиском регулярного выражения emacs и helm-Встречать, я не получаю совпадений с M-x helm-beamer-headlines
,
Минимальный файл, на котором я его пробовал:
\documentclass{beamer}
\begin{document}
\section{A}
\subsection{Aa}
\frame{\frametitle{}
\begin{enumerate}
\item one
\item two
\end{enumerate}
}
\subsection{Ab}
\frame{\frametitle{}
\begin{align*}
\alpha&=\beta
\end{align*}
}
\section{B}
\subsection{Ba}
\frame{\frametitle{}
\includegraphics[width=\textwidth]{abc.png}
}
\end{document}
1 ответ
Вы, вероятно, хотите
"^\\\\s.*\\|^\\\\f.*"
или по крайней мере"^\\\\s\\|^\\\\f"
как ваше регулярное выражение. Увидеть(elisp) Syntax for Strings
а также(elisp) Regexp Backslash
про обратную косую черту в Лиспе.Я не могу говорить только о том, что вы должны использовать для Хелма. Но в качестве альтернативы, это все, что вам нужно, если вы используете сосульки:
(defun foo () "..." (interactive) (icicle-search (point-min) (point-max) "^\\\\s.*\\|^\\\\f.*" t))
затем M-x foo TAB
в вашем буфере beamer. Кандидаты на завершение - это те строки, которые вы хотите. Перейдите среди них, используя C-down
и т.д. Смотрите документ для поиска Сосульки для получения дополнительной информации.