2010-10-14 17 views
7

Diciamo che sto modificando blah.txt con Emacs e decido di open dired to rename the file blah.txt. Quando si preme C-x d RET (o C-x C-f RET), verrà visualizzato un buffer dired per visualizzare il contenuto della directory contenente blah.txt, ma il cursore non sarà su blah.txt. Quindi devo prima cercare il mio file (C-s blah.txt) per posizionare il mio cursore su di esso e quindi posso rinominarlo (R).Aprire dired e selezionare il file associato al buffer precedente?

Come automatizzare o rimuovere il passo C-s blah.txt?

risposta

12

dired-jump è esattamente quello che desideri.

(autoload 'dired-jump "dired-x" "Jump to dired corresponding current buffer.") 
(autoload 'dired-jump-other-window "dired-x" "jump to dired in other window.") 

Quindi chiamare:

M-x dired-jump 

o

M-x dired-jump-other-window 
+0

Se segui le istruzioni nel manuale, otterrai anche i corretti collegamenti dei tasti: 'Ch ig'' (dired-x) Installazione facoltativa Dired Jump'' RET' – phils

1

si può fare qualcosa di simile:

M-: (dired (buffer-name (current-buffer))) 

Quindi l'unico file visibile in dired sarà il vostro file corrente e il cursore sarà proprio su di esso.

5

Si desidera C-x C-j.

+0

E qual è 'C-x C-j'? Non è associato a buffer di testo o buffer dired (Emacs 23.2). –

+4

@Trey: 'C-x C-j' è associato a' dired-jump', ma solo quando 'dired-x' è caricato. (Penso che ci sia una politica di Emacs che 'dired-x' non è conforme qui.) – Gilles

+0

Grazie, Gilles; Non mi ero reso conto che non era vincolato per impostazione predefinita. – offby1

1

Questo pezzo di consulenza farà ciò che si vuole:

(defadvice dired (around dired-jump-to-buffer activate) 
    "When running dired, move cursor to the line for the buffer we came from" 
    (interactive (list nil nil)) ;; bogus values, will be overwritten below 
    (let ((coming-from (buffer-file-name))) 
(ad-set-args 0 (dired-read-dir-and-switches "")) 
ad-do-it 
(when (and coming-from 
     (equal (file-truename default-directory) (file-truename (file-name-directory coming-from)))) 
    (goto-char (point-min)) 
    (search-forward (file-name-nondirectory coming-from) nil t)))) 

Nota: Opere per C-x D, ma non il punto di entrataC-x C-f a dired.

0
$ emacs --version 
GNU Emacs 24.3.1 

In .emacs:

(require 'dired-x) 

Ora C-x C-j dovrebbe essere associato a dired-jump.

Problemi correlati