Это то, что я делал в прошлом:
(defun jea-open-deep-file (arg)
(interactive "sWhich File?: ")
(cond
((string= "1" arg) (find-file "~/.emacs"))
((string= "2" arg) (find-file "/Users/jamesanderson/code/python/aws/comprehend/README.md"))
((string= "3" arg) (find-file "~/some/other/file/somewhere/else.el"))
(t (message "unknown choice"))))
(global-set-key [(f7)] 'jea-open-deep-file)
Итак, что я здесь делаю? Существует функция под названием «jea-open-deep-file», которая может открыть любой файл с помощью «find-file». Если вы хотите попробовать это, вы можете вставить его в файл ".emacs" или в буфер * scratch *, чтобы просто попробовать один раз. После того, как вы отредактируете вызовы find-file, чтобы указать файлы, которые вы хотите открыть, вы можете оценить буфер (есть несколько способов сделать это, самый простой для этого обсуждения: Alt + X then) eval-buffer "без кавычек в нижней области).
Как пользоваться? В этом случае я назначил функцию клавише F7 . Выберите тот, который вы еще не используете. Итак, после установки с eval-buffer я могу перейти:
- F7
- Он запрашивает у меня «Какой файл?»
- Я набираю 1, 2 или 3 и нажимаю ВОЗВРАТ
- emacs открывает файл
Сейчас у меня нет доступа к машине с Windows, но, возможно, вам придется немного изменить пути, например: "C:\\Program Files (x86)\\Aspell\\bin\\aspell.exe"
это с дополнительными \\ выходами.
Каждый раз, когда вы хотите добавить файл в jea-open-deep-file, вам потребуется переоценить функцию (сначала это кажется немного странным, но именно так вы «редактируете редактор, пока вы редактируем ", что очень приятно, не нужно перезагружать все приложение emacs.).
Edit:
Если вы хотите перейти к определенной строке, попробуйте:
(defun jea-open-file-goto-line (fname line)
(progn
(find-file fname)
(goto-char 0)
(forward-line line)))
(defun jea-open-deep-file (arg)
(interactive "sWhich File-Line?: ")
(let* ((split (split-string arg "-"))
(file (car split))
(line (string-to-number (cadr split))))
(cond
((string= "a" file) (jea-open-file-goto-line "~/.emacs" line))
((string= "b" file) (jea-open-file-goto-line "/Users/jamesanderson/code/python/aws/comprehend/README.md" line))
((string= "c" file) (jea-open-file-goto-line "~/some/other/file/somewhere/else.el" line))
(t (message "unknown choice")))))
(global-set-key [(f7)] 'jea-open-deep-file)
при появлении запроса введите «b-13» (без кавычек), если вы хотите перейти к 13-й строке файла с пометкой «b»