Se una directory contiene molti file e voglio andare a file (o sottodirectory) con nome che inizia con una lettera (o una stringa), c'è qualche buon modo per farlo? So che nel File Manager remoto le persone possono premere Alt e iniziare a digitare il nome e il cursore si sposterà mentre si digita, mi chiedo se Emacs abbia qualcosa di simile.Come accedere rapidamente a un file in Emacs Dired?
risposta
Il modo più veloce per rispondere a questa domanda è la copia di una sezione dal emacs file di informazioni. Per arrivare a questo tipo di testo Chidmemacs
ret e poi isearch
di una stringa appropriata ignorando il primo Failing I-search
o semplicemente andare a informazioni con Chi e poi andare direttamente al nodo informazioni indicato di seguito con g e quindi digitando il nome del nodo seguito da ret.
Il primo da informazioni nodo (emacs) Dired and Find
funziona se è in un buffer dired o meno:
To search for files with names matching a wildcard pattern use `M-x
find-name-dired'. It reads arguments DIRECTORY and PATTERN, and
chooses all the files in DIRECTORY or its subdirectories whose
individual names match PATTERN.
Il secondo da informazioni nodo (emacs) Dired Navigation
opere nel buffer dired ma si applica solo ai file attualmente elencati . Tuttavia, si noti che è possibile elencare sottodirectory con i prima.
`M-s f C-s' (`dired-isearch-filenames') performs a forward
incremental search in the Dired buffer, looking for matches only
amongst the file names and ignoring the rest of the text in the buffer.
`M-s f M-C-s' (`dired-isearch-filenames-regexp') does the same, using a
regular expression search. If you change the variable
`dired-isearch-filenames' to `t', then the usual search commands also
limit themselves to the file names; for instance, `C-s' behaves like
`M-s f C-s'. If the value is `dwim', then search commands match the
file names only when point was on a file name initially. *Note
Search::, for information about incremental search.
EDIT: Per iSearch una directory ricorsivamente si può prima elencare ricorsivamente.
È possibile elencare le sottodirectory in modo ricorsivo chiamando dired
con prefisso-arg e aggiungendo R
all'elenco di opzioni.
il seguente frammento per il file emacs di inizializzazione sarebbe nemmeno semplificare questa operazione:
(defun dired-noselect-maybe-recursive (dir-or-list &optional switches)
"Like `dired-noselect' but lists sub-directories when last character is ?/."
(if (and (null switches)
(= (aref dir-or-list (1- (length dir-or-list))) ?/))
(dired-noselect dir-or-list "-alR")
(dired-noselect dir-or-list switches)
))
(setq find-directory-functions (subst 'dired-noselect-maybe-recursive 'dired-noselect find-directory-functions))
Con questo frammento si ottiene un elenco normale di directory se si chiama trovare file (CxCf) per una directory senza una barra alla fine e ottieni una lista ricorsiva se la chiami con una barra alla fine. Ma attenzione. L'elenco di directory ricorsive può richiedere tempo. Se ti innervosisci, puoi sempre smettere con C-g.
isearch lo farà. control-s, quindi inizia a digitare.
Dal momento che è general-purpose funzione di ricerca di emacs, si potrebbe iniziare corrispondenza altre cose nel buffer fino ad arrivare abbastanza del nome in.
@Tobias e @ jl8e hanno entrambi risposto direttamente alla tua domanda: utilizzare C-s
(ricerca incrementale). Niente da aggiungere a questo.
Ma se si utilizzerà più volte un sottoinsieme dei file elencati o si eseguirà la stessa operazione su un sottoinsieme di file e se tale sottoinsieme può essere identificato da un modello di nome file (es. stesso prefisso), quindi è possibile utilizzare %m
per contrassegnare tutti i file che corrispondono a un'espressione regolare.Una volta contrassegnato, puoi fare qualsiasi cosa sul set di file marcati (o sul set di quelli non marcati).
(Una delle cose che si può fare è semplicemente omettere i nomi dei file marcati o non marcati dal profilo, e quindi da operazioni.)
Dired è veramente principalmente circa l'esame e operano su set di File. Il set singleton è un caso speciale e tutte le operazioni (chiavi) che operano sui file contrassegnati funzionano anche solo sul file della riga corrente, se nessuna è contrassegnata.
Voglio solo aggiungere un trucco che mi piace usare questo è in qualche modo legati alla tua domanda:
(add-hook
'dired-mode-hook
(lambda()
(define-key dired-mode-map "j" 'ido-find-file)))
Ovviamente funziona per un solo file, e si apre, invece di offrire una moltitudine di cose che dired può fare a un file, ma almeno è veloce.
- 1. Emacs Dired rinominare molti file
- 2. Emacs dired: troppe informazioni
- 3. emacs dired e openwith
- 4. In Emacs dired, come trovare/visitare più file?
- 5. Menu buffer Emacs: come mostrare solo i buffer file + dired?
- 6. Emacs Dired utilizzare lo stesso buffer
- 7. Finestra dedicata per la modalità dired in Emacs?
- 8. Come posso creare un file vuoto in emacs?
- 9. Come posso ottenere rapidamente emacs per aprire un nuovo buffer?
- 10. Come arrivare Dired di ignorare i file con estensioni specifiche
- 11. Come accedere con pantheios a un file?
- 12. Come decomprimere/decomprimere in Emacs
- 13. Apri alcune directory in modo ricorsivo in Dired
- 14. Aprire dired e selezionare il file associato al buffer precedente?
- 15. Come cambiare directory in Emacs diretto
- 16. Implementare un'interfaccia dired in emacs per qualcosa di diverso dal filesystem?
- 17. Come posso accedere al percorso della directory corrente in un file di variabili di directory emacs?
- 18. Come accedere a un filesystem in java?
- 19. Dired + Non mostra più i dettagli?
- 20. Overriding System.Diagnostics.Trace.WriteLine per accedere a un file
- 21. Come accedere a un file XAP Silverlight su un dominio?
- 22. Inserisce rapidamente file 250k
- 23. Impossibile accedere a un file chiuso
- 24. Come [tar e] comprimere i file contrassegnati in Emacs
- 25. Emacs trova e sostituisce espressioni regolari in più file (find-name-dired + Q), non salva i miei buffer?
- 26. dired indietro/avanti funzione
- 27. Come anticipare rapidamente un ramo?
- 28. Come individuare l'errore in un file Lisp in Emacs?
- 29. Come accedere a un file di configurazione all'interno del vaso?
- 30. Come accedere a un controllo WPF situato in un ControlTemplate?
Nella mia risposta di seguito ho aggiunto una nota sulle directory di ricerca ricorsiva. – Tobias
se sei interessato a trovare rapidamente un file in sottodirectory (cioè in modo ricorsivo), dovresti dare un'occhiata a 'projectile' e alle sue funzioni' find-file-in-project' e 'find-file-in-directory' : https://github.com/bbatsov/projectile – Ehvince
E poi c'è il coltellino svizzero: Sezione "Grepping senza dipendere da programmi esterni" in http://www.emacswiki.org/emacs/TN Se chiami 'elgrep 'con prefisso-chiave cerca ricorsivamente e se si specifica solo l'espressione regolare per il nome del file e si lascia l'altra regexp vuota, allora cerca solo i file con tale nome di file. – Tobias