Uzyskuję dostęp do wielu plików z określonego katalogu, który nie jest ~, ale mówią: D: \ Mijn documenten \ My Dropbox.
Jaki jest najszybszy sposób na „znalezienie” pliku w tym katalogu w ramach nowej sesji Emacsa? Używasz zakładek?
Uzyskuję dostęp do wielu plików z określonego katalogu, który nie jest ~, ale mówią: D: \ Mijn documenten \ My Dropbox.
Jaki jest najszybszy sposób na „znalezienie” pliku w tym katalogu w ramach nowej sesji Emacsa? Używasz zakładek?
Odpowiedzi:
Zwykle przełączam się na inny bufor, edytując plik w tym wspólnym katalogu, więc gdy C-x C-f
znajdę nowy plik, ścieżka pokazuje już katalog, który chcę.
Działa to w przypadku nowych sesji, ponieważ desktop-save-mode
włączyłem zapisywanie sesji po wyjściu z emacsa (a jedynym wyjściem jest emacs, jeśli aktualizuję emacsa lub muszę ponownie uruchomić komputer).
ido
jest naprawdę miły z tego właśnie powodu. Oto strony, w których po raz pierwszy o tym czytałem:
Możesz otworzyć dowolny katalog wybrany w dired . ( C-xd i nazwa katalogu). Można wyszukiwać nazwy pliku w dired bufora.
Jeśli chcesz po prostu zmienić bieżący katalog na / coś / else zamiast ~ , możesz zrobić Mx cd i zmienić go na żądany katalog. Następnym razem, gdy zrobisz Cx Cf, aby otworzyć plik, będziesz w innym katalogu.
Zobacz także Speedbar .
Pasek prędkości to kolejna ramka, która wyświetla informacje o bieżącym buforze, umożliwiając lepszą nawigację po źródłach.
Powiązałbym „przejście do tego katalogu” z jednym kluczem i C-x C-fstamtąd.
(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.
Lub, jak sugerujesz, jestem pewien, że możesz użyć zakładek .
Dwa pakiety, które są w tym dobre oprócz tych już wspomnianych:
.projectile
plik, aby zidentyfikować inne foldery jako „projekty”Oczywiście w przypadku bardzo często używanych plików, takich jak moje pliki dot, wykonuję następujące czynności:
(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
Mój init.el
jest tutaj .
Słyszę, że Emacs ma również rejestry plików , które są używane w tym samym celu, co moje niestandardowe makro powyżej.
Jeśli chodzi o to, aby preferowanym katalogiem był domyślny ( default-directory
) podczas uruchamiania sesji Emacsa, po prostu uruchom Emacsa w tym katalogu . Na przykład w MS Windows umieściłbyś ten katalog w Start in
polu skrótu używanego do uruchamiania Emacsa.
Nie musisz go używać desktop-save-mode
, jeśli zawsze chcesz, aby ten katalog był obecny podczas uruchamiania Emacsa.
I możesz pokazać Dired dla tego katalogu po uruchomieniu Emacsa: po prostu przekaż katalog jako plik do edycji w wierszu poleceń.
Jeśli chcesz mieć trwały, szybki sposób na uzyskanie dostępu do określonego katalogu, ustawienie go jako domyślnego i wyświetlenie dla niego opcji Dired, po prostu utwórz zakładkę Dired. Oznacza to, że należy utworzyć zakładkę w buforze Dired. Będziesz potrzebował biblioteki Bookmark + do dodawania zakładek do buforów Dired.
C-x b <find one> RET
, prawda?