2010-03-23 25 views
10

Durante la visualizzazione di uscita collegata alla Meno, a volte mi piacerebbe essere in grado di vederlo in Emacs al fine di ottenere l'evidenziazione della sintassi e l'uso emacs comandi per la ricerca, la marcatura, la copia, eccTubo meno di Emacs

Ho notato che Less ha un comando v che può essere utilizzato per aprire il file attualmente visualizzato in $EDITOR. Sfortunatamente questo non funziona quando si visualizza l'input in pipe.

Inoltre, non so come ottenere Emacs per visualizzare lo stdin come documento di sola lettura.

Quindi, è possibile impostare Meno con qualcosa come v ma che pompa il buffer corrente in Emacs come file di sola lettura?

Grazie.

risposta

5

Se si scorre verso il basso in http://www.emacswiki.org/emacs/GnuClient, verrà visualizzata una sezione intitolata "Trasmissione di dati a un buffer Emacs" che potrebbe essere rilevante. Oppure è possibile hack up a solution involving emacsclient and temporary files. (link dead).

Ho trovato un'altra variante mentre cercavo un duplicato del collegamento morto: Piping to an emacs buffer with emacsclient che punta a code stored on github.

+0

http://www.shellarchive.co.uk/content/emacs_tips.html#have-emacsclient-accept-stuff-from-stdin link qui sopra non lo fa lavoro. Puoi aggiornare il link per favore. – CantGetANick

+0

@CantGetANick: mi piacerebbe, ma non ho una versione alternativa. Gah! – dmckee

+0

sei un brav'uomo. :) – CantGetANick

5

ho formalizzato la soluzione qui: github e-sink

+0

Grazie +1 ... Questo è ** molto ** più veloce (in tempo reale) di 'emacs-pipe.pl' nell'altra risposta Uso di' cat file', dove * file * contiene l'output di 'printf '% s \ n' {0000001..1000000}> file' ..... 'emacs-pipe.pl' -> tempo: r/u/s:' 2m23.487s' '0m8.461s'' 0m4.976s' ..... mentre, questo: 'e-sink.pl' -> tempo: r/u/s:' 0m14.796s' '0m11.289s'' m3.492s' .. ... Ma se usato con '--cmd', viene visualizzato un errore: * Il fornitore non ha definito la macro POSIX ARG_MAX, utilizzata in /home/axiom/bin/e-sink.pl riga 182 * .. Esiste una soluzione semplice per questo? (la mia conoscenza perl è piuttosto scarsa) –

+0

L'implementazione --cmd è stata l'implementazione lenta originale. Ho corretto l'errore che hai riscontrato, ma segui quello nuovo. Saluti. –