Если «связанные файлы» следуют некоторому шаблону, я думаю, что тривиально написать некоторые функции elisp для выполнения задачи.Допустим, у вас есть модель и вам нужно открыть связанный с ней контроллер, вам нужно будет сделать что-то вроде этого:
(defun my-open-related-controller ()
(interactive)
(let* ((name (buffer-file-name))) ;gets the filename of the current buffer
;; Of course, this is only an example. The point here is that you need
;; to "discover" the name of the related file based on the current one.
(setf name (replace-regexp-in-string "model" "controller" name))
;; Now you will open the file(if it isn't open already) and switch to it
(find-file name)))
Затем вы можете связать функцию, скажем, с F5:
(define-key name-of-the-mode-map [f5] 'my-open-related-controller)
Если вы хотите создать эту привязку глобально, используйте:
(global-set-key [f5] 'my-open-related-controller)
Конечно, это только грубый пример (так как вы не дали много конкретных деталей), но его должно быть достаточно, чтобы получитьты начал.Надеюсь, это поможет!