我正在尝试使用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 regexp搜索和helm-occurrence一起使用时,我得不到M-x helm-beamer-headlines
的匹配。< / p>
我尝试过的最小文件是:
\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}
答案 0 :(得分:1)
您可能希望"^\\\\s.*\\|^\\\\f.*"
或至少 "^\\\\s\\|^\\\\f"
作为正则表达式。见(elisp) Syntax for Strings
和(elisp) Regexp Backslash
关于Lisp中的反斜杠。
我不能说出你应该用于Helm的东西。但作为替代方案,如果您使用Icicles:
,这就是您所需要的(defun foo ()
"..."
(interactive)
(icicle-search (point-min) (point-max) "^\\\\s.*\\|^\\\\f.*" t))
然后在您的投影缓冲区中M-x foo TAB
。完成候选人是你想要的线。使用C-down
等在其中导航。有关详细信息,请参阅doc for Icicles search。