Если я открою файл doc.foo, я хочу, чтобы emacs искал и открывал файл doc.bar в той же папке.

В частности, эта проблема возникает у меня при работе в LaTeX (auctex), но я думаю, что у нее должно быть общее решение для emacs.

С каждым файлом doc.tex у меня есть связанный и часто редактируемый файл doc.sty в той же папке.

Есть ли способ, чтобы каждый раз, когда я открываю файл doc.tex, я могу заставить emacs открывать файл doc.sty в этой папке? Я совсем не разбираюсь в elisp, поэтому что-то очень простое - это не обязательно должен быть надежный код: он может работать при условии, что оба файла называются doc. * И оба существуют.


person Awnani Maus    schedule 09.06.2012    source источник


Ответы (1)


Взгляните на комментарий для:
M-x find-library RET find-file RET

Это не совсем то, что вы просили, но это встроенное решение для открытия связанных файлов. Просто привяжите ключ к ff-find-other-file (или ff-find-related-file, если вы предпочитаете этот псевдоним), и вы сможете легко переключаться между двумя файлами.

В частности, см .:

  • C-h v ff-other-file-alist RET
  • C-h v ff-search-directories RET

Так что-то вроде этого:

(add-hook 'latex-mode-hook 'my-latex-mode-hook)

(defun my-latex-mode-hook ()
  "My LaTeX customisations."
  (setq ff-search-directories '(".")
        ff-other-file-alist  '(("\\.tex$" (".sty"))
                               ("\\.sty$" (".tex"))))
  (local-set-key (kbd "C-c f") 'ff-find-other-file))
person phils    schedule 09.06.2012