4

Я получаю доступ ко многим файлам из определенного каталога, который не является ~, но говорит: D:\Mijn documentmenten \My Dropbox.

Какой самый быстрый способ «найти» файл в этом каталоге в новой сессии Emacs? Используя закладки?

7 ответов7

3

ido действительно хорош по этой причине. Это сайты, где я впервые прочитал об этом:

1

Также взгляните на Speedbar.

Speedbar - это еще один кадр, который отображает информацию о текущем буфере, что позволяет вам лучше ориентироваться в источниках.

1

Вы можете открыть любой каталог по вашему выбору в Dired. (C-xd и имя каталога.) Вы можете искать имя файла в буфере Dired.

Если вы просто хотите изменить текущий каталог на / чем-то / еще вместо ~, вы можете выполнить Mx cd и изменить его на нужный вам каталог. В следующий раз, когда вы выполните Cx Cf, чтобы открыть файл, вы окажетесь в другом каталоге.

0
  1. Если речь идет о том, чтобы при запуске сеанса Emacs предпочитаемый каталог был каталогом по умолчанию (default-directory), просто запустите Emacs в этом каталоге. Например, в MS Windows вы должны поместить этот каталог в поле Start in ярлыка, который вы используете для запуска Emacs.

    Нет необходимости использовать desktop-save-mode , если вы всегда хотите, чтобы этот каталог был текущим при запуске Emacs.

    И вы можете показать Dired для этого каталога при запуске Emacs: просто передайте каталог как файл для редактирования в командной строке.

  2. Если вы хотите, чтобы постоянный и быстрый способ получить доступ к определенному каталогу, сделать его по умолчанию и показать Dired для него, просто создайте закладку Dired. То есть создайте закладку, когда вы находитесь в буфере Dired. Вам понадобится библиотека Bookmark+ для закладки Dired буферов.

0

Два пакета, которые хороши в этом, кроме уже упомянутых:

  • метательный
    • любая контролируемая версия папка является "проектом"
    • Вы можете быстро перейти к любому проекту, а затем к любому файлу внутри проекта.
    • добавьте файл .projectile чтобы идентифицировать другие папки как "проекты"
    • интегрируется с ido, helm, ivy (рекомендуется)
  • Emacs-FASD
    • тонкий слой поверх утилиты командной строки
    • перейти к часто используемым файлам и каталогам
    • интегрируется с ido, helm, ivy (рекомендуется)

Конечно, для очень часто используемых файлов, таких как мои точечные файлы, я делаю следующее:

(defmacro radian-register-dotfile (filename &optional keybinding)
  "Tell Radian about a dotfile.

This is best demonstrated by example. If NAME is
\".emacs.d/init.el\" then `radian-register-dotfile' will create
the interactive function `radian-find-init-el'. Calling that
function will invoke `find-file' on ~/.emacs.d/init.el.

If additionally KEYBINDING is \"e i\" then
`radian-register-dotfile' will use `global-set-key' to bind
`radian-find-init-el' to (kbd \"M-RET e i\")."
  (let* ((bare-filename (replace-regexp-in-string ".*/" "" filename))
         (defun-name (make-symbol
                      (concat
                       "radian-find-"
                       (replace-regexp-in-string "[^a-z0-9]" "-" bare-filename))))
         (full-filename (concat "~/" filename))
         (docstring (format "Open %s in the current buffer."
                            full-filename))
         (defun-form `(defun ,defun-name ()
                        ,docstring
                        (interactive)
                        (find-file ,full-filename))))
    (if keybinding
        (let* ((full-keybinding (concat "M-RET " keybinding))
               (set-key-form `(global-set-key (kbd ,full-keybinding)
                                              #',defun-name)))
          `(progn
             ,defun-form
             ,set-key-form))
      defun-form)))

;; Emacs
(radian-register-dotfile ".emacs.d/init.el" "e i")
(radian-register-dotfile ".emacs.d/init.before.local.el" "e b")
(radian-register-dotfile ".emacs.d/init.local.el" "e l")

;; Git
(radian-register-dotfile ".gitconfig" "g c")
(radian-register-dotfile ".gitexclude" "g e")
(radian-register-dotfile ".gitconfig.local" "g l")

;; Et cetera

Мой init.el здесь.

Я слышал, что в Emacs также есть файловые регистры, которые используются для тех же целей, что и мой пользовательский макрос выше.

0

Обычно я переключаюсь в другой буфер, редактирующий файл в этом общем каталоге, так что, когда я C-x C-f чтобы найти новый файл, путь уже показывает нужный мне каталог.

Это работает для новых сессий, потому что у меня включен desktop-save-mode сохранения для сохранения моего сеанса при выходе из emacs (и единственный раз, когда я выхожу из emacs - это когда я обновляю emacs или мне нужно перезагрузить компьютер).

0

Я бы связал «переход к этому каталогу» с одним ключом и Cx Cf оттуда.

(defun my-favorite-directory ()
    "Open where I often go."
    (interactive)
    (find-file "/path/to/there"))
(global-set-key [f5] 'my-favorite-directory) ; Let it be a global bookmark.

Или, как вы предлагаете, я уверен, что вы могли бы использовать закладки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .