Dois pacotes que são bons nisso além dos já mencionados:
-
Projétil
- qualquer pasta controlada por versão é um "projeto"
- você pode pular rapidamente para qualquer projeto e, em seguida, qualquer arquivo dentro de um projeto
- adicione um arquivo
.projectile
para identificar outras pastas como "projetos"
- integra-se com ido, leme, hera (recomendado)
-
emacs-fasd
É claro que, para arquivos muito acessados muito , como meus dotfiles, eu faço o seguinte:
(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
Meu init.el
é aqui .
Ouvi dizer que o Emacs também tem registros de arquivos , que são usado para o mesmo propósito que minha macro personalizada acima.