2010-09-29 14 views
11

Qual è il modo più semplice per aprire un file txt il cui percorso deve essere trovato utilizzando il comando di ricerca della shell?Emacs: il modo più veloce per aprire un file la cui posizione non è nota

Per esempio, diciamo che voglio aprire un file che so è (unicamente) denominato example.txt e che so essere "da qualche parte posso trovarlo utilizzando la shell trovare comando".

Quello che faccio attualmente è questo:

faccio C-u (universal-argument) poi M-! (comando di shell)

Ho poi entro nel trovare, ad esempio:

find . -iname "example.txt" 

Poi il percorso completo (che non conoscevo in precedenza) appare nel buffer, ho tagliato, poi Ho colpito Cx Cf, ho cancellato ciò che è stato scritto di default e poi ho incollato ciò che ho tagliato prima.

questo sembra un po 'lungo e richiede un bel paio di tasti, ecc cut'n'pasting

C'è un modo più semplice per fare la stessa cosa (senza scrivere un nuovo comando di Emacs personalizzato)?

risposta

10

Utilizzando solo la funzionalità built-in, vorrei:

  • Vai a un buffer di shell: M-x guscio
  • eseguire il mio comando find.
  • Sposta il cursore verso l'alto in modo che si trovi sopra il percorso del file che è stato trovato.
  • Eseguire il comando find-file-at-point: M-x ffap.

Io uso find-file-at-point abbastanza spesso che l'ho legato ad un tasto dedicato, s- \ (super-backslash).

+0

non funziona per me. Dammi solo l'attuale directory in cui mi trovo nella shell ... – Mordechai

6

provare ifind.el

M-x ifind /some/starting/point/example.txt 

Cercherà example.txt nelle directory di seguito /some/starting/point.

+0

di nuovo! :) Eccellente. – SyntaxT3rr0r

10
M-x find-name-dired 

Inserire il dir (default corrente) e il nome del file (gocce di shell funzionano troppo) e si otterrà un buffer virtuale dired con i risultati. Vai al file desiderato e premi "a"

1

Se la tua cartella costituisce un "progetto" - qualcosa sotto un controllo di versione o con un marcatore di cartella radice come project.el, .dir-locals.el, ecc, tu possibile utilizzare il find-file-in-project, che a mio parere è un'ottima soluzione a questo problema.

0

M-xfind-diredRET

allora si ha un buffer dired che mostra i file restituiti da trovare. Puoi usare il classico comando dired per aprire/spostare/rinominare ... file e directory.

2

M-x locate è il modo più veloce per trovare e aprire un file, esp. se conosci il nome esatto del file, in emacs.

+0

Non lo sapevo, grazie! –

0

mi sorprende che globalff non è menzionato come uno dei opzione praticabile. Certo richiede un comando locate ma è abbastanza veloce e utile quando non riesci a ricordare il nome esatto.

1

In Icicles è possibile trovare i file facendo corrispondere non solo il nome del file relativo ma qualsiasi parte del percorso. È possibile utilizzare la sottostringa, l'espressione regolare e la corrispondenza sfocata. Puoi AND insieme a più pattern di ricerca (completamento progressivo). Vedi multi-comando icicle-locate-file.

http://www.emacswiki.org/emacs/Icicles_-_File-Name_Input

Problemi correlati