Навигация по файлу с помощью 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 ответ

Решение
  1. Вы, вероятно, хотите "^\\\\s.*\\|^\\\\f.*" или по крайней мере "^\\\\s\\|^\\\\f" как ваше регулярное выражение. Увидеть (elisp) Syntax for Stringsа также (elisp) Regexp Backslash про обратную косую черту в Лиспе.

  2. Я не могу говорить только о том, что вы должны использовать для Хелма. Но в качестве альтернативы, это все, что вам нужно, если вы используете сосульки:

    (defun foo ()
      "..."
      (interactive)
      (icicle-search (point-min) (point-max) "^\\\\s.*\\|^\\\\f.*" t))
    

затем M-x foo TAB в вашем буфере beamer. Кандидаты на завершение - это те строки, которые вы хотите. Перейдите среди них, используя C-down и т.д. Смотрите документ для поиска Сосульки для получения дополнительной информации.

Другие вопросы по тегам