2009-07-11 14 views
19

Esiste una shell della riga di comando o una personalizzazione della shell che supporti il ​​file di ricerca di ido in stile emacs? In emacs, posso navigare in una directory estremamente rapidamente usando C-x C-f e (ido-mode t).Emacs shell stile ido

Idealmente, sto cercando una soluzione che possa essere utilizzata al di fuori di emacs. Anche se sarei aperto per un modo per cambiare rapidamente le directory all'interno di un buffer eshell.

+0

ho spesso voluto più applicazioni si comportava come ido-mode. –

+7

Perché mai lasciare Emacs? :) eshell? – seth

+0

Ha detto che usa eshell. Ho letto il codice sorgente di ido, e non è realmente preso in considerazione abbastanza da poterlo usare facilmente da eshell. Quindi, avrà bisogno di rifattore ido e quindi legarlo a eshell, se sceglie quella via. – jrockway

risposta

19

Poiché volevo anche qualcosa di simile, ho provato a implementarlo come una funzione di completamento bash . Ovviamente significa. devi usare bash.

È solo leggermente testato, quindi non esitate a provare e segnalare bug/commenti.

http://pgas.freeshell.org/shell/bash-ido

+2

Lavoro fantastico! Qualche idea di metterlo su qualcosa come GitHub? – zpinter

+1

Molto impressionante! – blais

0

So che alcune estensioni di supporto dell'emulatore di terminale, ad esempio rxvt-unicode possono essere estese con script Perl. Non sono sicuro dal momento che non ho mai scritto un'estensione, ma forse quello che vuoi è fattibile in questo modo.

Se si desidera dare un'occhiata ad alcuni script Perl per urxvt ci sono alcuni esempi in/usr/lib/urxvt/perl con l'installazione predefinita di urxvt su Debian.

+1

Il problema è che l'emulatore di terminale e la shell non sono a conoscenza l'uno dell'altro. Si potrebbe fare qualche modifica al parsing del prompt, ma questo è un hack ed è probabile che fallisca. (Considera di essere in ssh'd. L'emulatore di terminale vede il tuo filesystem locale, ma la shell vede il filesystem remoto. Lascia che la confusione e i risultati errati inizino ...) – jrockway

2

Bash ha una variabile di ambiente denominata CDPATH che può contenere un elenco di directory da cercare quando si utilizza il comando cd. Inoltre, controlla le sezioni "Completamento programmabile" e "LETTURA" del manuale di Bash. Dovresti essere in grado di accartocciare insieme qualcosa che funzioni per te.

3

Prova la Z-shell. Ha un completamento molto migliore di bash. Devo ammettere che non l'ho usato per un po 'e bloccato con bash perché è sempre disponibile.

0

Se si desidera eseguire il completamento dell'idone in eshell o simile, è consigliabile scrivere una funzione che utilizza ido per leggere una directory, quindi inserisce il comando in cd in tale directory nel buffer della shell. Non uso io stesso eshell, quindi non posso commentare come effettivamente scrivere questa funzione, ma è un'idea.

2

Il meglio che ho potuto fare finora è autojump. Sto ancora cercando una soluzione più vicina all'idoto, ma autojump è un'app fantastica.

+0

e ho scoperto Fasd che trovo ancora meglio: https: // github.com/clvv/fasd – Ehvince

Problemi correlati