Jaki jest najszybszy sposób na „znalezienie” pliku w często używanym katalogu w Emacsie?

4

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?

Michiel Borkent
źródło

Odpowiedzi:

0

Zwykle przełączam się na inny bufor, edytując plik w tym wspólnym katalogu, więc gdy C-x C-fznajdę nowy plik, ścieżka pokazuje już katalog, który chcę.

Działa to w przypadku nowych sesji, ponieważ desktop-save-modewłączyłem zapisywanie sesji po wyjściu z emacsa (a jedynym wyjściem jest emacs, jeśli aktualizuję emacsa lub muszę ponownie uruchomić komputer).

Doug Harris
źródło
Czy to nie jest wiele kluczy, zwłaszcza jeśli nie po prostu używany jeden? Zmiana jest C-x b <find one> RET, prawda?
Nikana Reklawyks,
1

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.

Kingsindian
źródło
1

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.

Ilya Zakreuski
źródło
0

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 .

Nikana Reklawyks
źródło
0

Dwa pakiety, które są w tym dobre oprócz tych już wspomnianych:

  • Pocisk
    • każdy folder kontrolowany przez wersję jest „projektem”
    • możesz szybko przejść do dowolnego projektu, a następnie dowolnego pliku w projekcie
    • dodaj .projectileplik, aby zidentyfikować inne foldery jako „projekty”
    • integruje się z ido, ster, bluszcz (zalecane)
  • emacs-fasd
    • cienka warstwa na górze narzędzia wiersza poleceń
    • przejdź do często używanych plików i katalogów
    • integruje się z ido, ster, bluszcz (zalecane)

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.eljest 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.

Radon Rosborough
źródło
0
  1. 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 inpolu 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ń.

  2. 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.

Rysował
źródło