Я получаю доступ ко многим файлам из определенного каталога, который не является ~, но говорит: D:\Mijn documentmenten \My Dropbox.
Какой самый быстрый способ «найти» файл в этом каталоге в новой сессии Emacs? Используя закладки?
Я получаю доступ ко многим файлам из определенного каталога, который не является ~, но говорит: D:\Mijn documentmenten \My Dropbox.
Какой самый быстрый способ «найти» файл в этом каталоге в новой сессии Emacs? Используя закладки?
ido
действительно хорош по этой причине. Это сайты, где я впервые прочитал об этом:
Также взгляните на Speedbar.
Speedbar - это еще один кадр, который отображает информацию о текущем буфере, что позволяет вам лучше ориентироваться в источниках.
Вы можете открыть любой каталог по вашему выбору в Dired. (C-xd и имя каталога.) Вы можете искать имя файла в буфере Dired.
Если вы просто хотите изменить текущий каталог на / чем-то / еще вместо ~, вы можете выполнить Mx cd и изменить его на нужный вам каталог. В следующий раз, когда вы выполните Cx Cf, чтобы открыть файл, вы окажетесь в другом каталоге.
Если речь идет о том, чтобы при запуске сеанса Emacs предпочитаемый каталог был каталогом по умолчанию (default-directory
), просто запустите Emacs в этом каталоге. Например, в MS Windows вы должны поместить этот каталог в поле Start in
ярлыка, который вы используете для запуска Emacs.
Нет необходимости использовать desktop-save-mode
, если вы всегда хотите, чтобы этот каталог был текущим при запуске Emacs.
И вы можете показать Dired для этого каталога при запуске Emacs: просто передайте каталог как файл для редактирования в командной строке.
Если вы хотите, чтобы постоянный и быстрый способ получить доступ к определенному каталогу, сделать его по умолчанию и показать Dired для него, просто создайте закладку Dired. То есть создайте закладку, когда вы находитесь в буфере Dired. Вам понадобится библиотека Bookmark+ для закладки Dired буферов.
Два пакета, которые хороши в этом, кроме уже упомянутых:
.projectile
чтобы идентифицировать другие папки как "проекты"Конечно, для очень часто используемых файлов, таких как мои точечные файлы, я делаю следующее:
(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 также есть файловые регистры, которые используются для тех же целей, что и мой пользовательский макрос выше.
Обычно я переключаюсь в другой буфер, редактирующий файл в этом общем каталоге, так что, когда я C-x C-f
чтобы найти новый файл, путь уже показывает нужный мне каталог.
Это работает для новых сессий, потому что у меня включен desktop-save-mode
сохранения для сохранения моего сеанса при выходе из emacs (и единственный раз, когда я выхожу из emacs - это когда я обновляю emacs или мне нужно перезагрузить компьютер).
Я бы связал «переход к этому каталогу» с одним ключом и 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.
Или, как вы предлагаете, я уверен, что вы могли бы использовать закладки.