giovedì 7 agosto 2014

Solo con X11 (e con programmi progettati come lo GNU Emacs)

Si, sono monotono. X11 e Emacs.

Ieri sera mi sono venute in mente un paio di cose che dovevo fare nel sorgente che stavo editando quando sono uscito dall'ufficio. 

Sono sceso in biblioteca, mi sono collegato al mio iMac con su GNU/Linux, ho lanciato la VPN verso la rete dell'azienda dove lavoro, mi sono collegato con SSH al mio portatile. Fin qui niente di speciale, anche se ho usato l'opzione -X di ssh, cioè mi sono aperto un tunnel per X11 verso il mio iMac. Ma senza X11 non serve a nulla.

La cosa divertente è che a quel punto ho dato il comando

saint@quigley:~
22:09:59 [1] $ emacsclient --eval '(make-frame-on-display"'$DISPLAY'")'

Il comando emacsclient  permette di utilizzare una sessione esistente di emacs per effettuare dell'editing su file temporanei o, utilizzando il parametro --eval, di fare eseguire delle istruzioni Emas-Lisp ad una istanza di Emacs attiva. Queste cose non le permettono molti programmi.

In particolare la funzione make-frame-on-display viene usata per l'effetto collaterale di creare una nuova finestra (detta frame in Emacs) sul display messo a disposizione da un server X11 differente da quello di default.

In questo modo mi sono ritrovato davanti alla stessa sessione di editing di lavoro che c'era quando sono uscito dall'ufficio, visto che appunto era quello il sorgente su cui avevo appena smesso di lavorare quando ho lasciato l'ufficio . Ho fatto quello che dovevo fare, ho salvato - non si sa mai e poi ho chiuso il collegamento ssh e la VPN.

Senza X11 ci sarei ancora riuscito con un trucco (usare emacsclient per editare un file "dummy" per poi passare al 'buffer' contenente il sorgente che mi interessava), ma con X11 ho potuto sfruttare tutta una serie di cose che non ci sono via terminale a caratteri (set di colori leggibile per l'evidenziazione sintattica, mouse, visualizzazione chiara delle coppie di parentesi...). Senza un programma che si lascia pilotare dall'esterno per creare nuove viste dei documenti presenti in memoria no. 

Avrei dovuto sperare di aver salvato prima di andarmene, modificare il file e poi ricaricarlo una volta tornato al lavoro.

A onor del vero, nella notte l'istanza di Emacs è caduta, forse perché non avevo fatto in modo che si dimenticasse del server remoto. O forse perché mi ostino ad usare versioni non ancora stabili :).

Senza Emacs

Nessun commento:

Posta un commento