Experimentalia

Appunti raminghi

Vi: auguro Buona Pasqua a tutti

con un commento

Il titolo è fuorviante ma, come ad ogni Pasqua che si rispetti, bisogna regalare, insieme al cioccolato una sorpresa.

Per il cioccolato, visto il medium utilizzato, non sperate di averne neanche una briciola (che a me poi non piace ed a casa mia in questi giorni si soffre parecchio).

Per la sorpresa, invece, ho pensato di nascondere, neanche troppo, un suggerimento nel titolo del post.

La sorpresa è un piccolo trucco da utilizzare per chi utilizza vi e risolvere una delle situazioni più frustranti, almeno per me, che possono capitare utilizzando questo editor.

Vista la sua natura Vi viene utilizzato spesso per modificare file di configurazione e, specialmente con le ultime distribuzioni a la ubuntu, che incoraggiano l’uso del comando sudo, vi sarà capitato di cominciare a modificare un file e, al momento di salvare scoprire che non avete i diritti per salvare?

A me succede due volte su tre e fino ad ora la mia soluzione era

  1. smadonnare in più lingue*,
  2. salvare il file nella mia directory personale
  3. uscire da vi
  4. sovrascrivere il file in questione
  5. usare sudo -s
  6. smadonnare in più lingue (diverse da quelle al punto 1) e continuare a fare quello che stavo facendo.

Vi prego di notare l’enfasi su fino ad ora ed era. E’ successo che mi è capitato per le mani questo link su nixcraft che risolve il problema in maniera elegante.

In due parole, basta il comando

:w !sudo tee %

Che, noterete la somiglianza con :w nomefile, non fa altro che incanalare in una pipe a cui vengono applicati i premessi di root e che va a finire nel file che stavate editando.

Più in dettaglio:

:w !comando invia allo standard input del comando il file in editing, provate ad esempio :w ! tac.

Sapere che il carattere % rappresenta il nome del file in editing vi farà capire meglio il funzionamento del comando.

Se poi vorrete non vedere l’antiestetico dump del file su standard output basterà digitare

:w !sudo tee % >>/dev/null

Se poi vorrete strafare vi consiglio di aggiungere al vostro .vimrc

Il titolo è fuorviante ma, come ad ogni pasqua che si rispetti, bisogna regalare, insieme al cioccolato una sorpresa.

Per il cioccolato, visto il medium utilizzato, non sperate di averne neanche una briciola (che a me poi non piace ed a casa mia in questi giorni si soffre parecchio).

Per la sorpresa, invece, ho pensato di nascondere, neanche troppo, un suggerimento nel titolo del post.

La sorpresa è un piccolo trucco da utilizzare per chi utilizza vi e risolvere una delle situazioni più frustranti, almeno per me, che possono capitare utilizzando questo editor.

Vista la sua natura Vi viene utilizzato spesso per modificare file di configurazione e, specialmente con le ultime distribuzioni a la ubuntu, che incoraggiano l’uso del comando sudo, vi sarà capitato di cominciare a modificare un file e, al momento di salvare scoprire che non avete i diritti per salvare?

A me succede due volte su tre e fino ad ora la mia soluzione era

  1. smadonnare in più lingue*,
  2. salvare il file nella mia directory personale
  3. uscire da vi
  4. sovrascrivere il file in questione
  5. usare sudo -s
  6. smadonnare in più lingue (diverse da quelle al punto 1) e continuare a fare quello che stavo facendo.

Vi prego di notare l’enfasi su fino ad ora ed era. E’ successo che mi è capitato per le mani questo link su nixcraft che risolve il problema in maniera elegante.

In due parole, basta il comando

:w !sudo tee %

Che, noterete la somiglianza con :w nomefile, non fa altro che incanalare in una pipe a cui vengono applicati i premessi di root e che va a finire nel file che stavate editando.

Più in dettaglio:

:w !comando invia allo standard input del comando il file in editing, provate ad esempio :w ! tac.

Sapere che il carattere % rappresenta il nome del file in editing vi farà capire meglio il funzionamento del comando.

Se poi vorrete non vedere l’antiestetico dump del file su standard output basterà digitare

:w !sudo tee % >>/dev/null

Se poi vorrete strafare vi consiglio di aggiungere al vostro .vimrc

command -bar -nargs=0 Sudow :silent execute “w !sudo tee % ” | edit!

Che aggiunge un comando personalizzato che salva il file digitando tutta la sintassi difficile da ricordare al posto vostro. L’ultima parte del comando (edit!) vi evita di dover confermare a fine salvataggio la modifica del file su disco e, soprattutto, fa in modo che vi non segnali in uscita, sbagliando, che il file è stato modificato senza essere salvato.

Ovviamente il comando sarà Sudow. E’ importante mantenere la lettera maiuscola (i comandi definiti dall’utente devono avere la prima lettera maiuscola) del nome del comando se intendete cambiarlo.

Scritto da Eineki

aprile 4, 2010 a 12:40 pm

Pubblicato in linux, tip&tricks

Una Risposta

Iscriviti ai commenti con RSS .

  1. Repetita iuvant.
    Comunque, bell’articolo.

    DRerAGO

    aprile 4, 2010 alle 16:14 pm


Lascia un Commento

Fill in your details below or click an icon to log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Log Out / Modifica )

Foto Twitter

You are commenting using your Twitter account. Log Out / Modifica )

Foto di Facebook

You are commenting using your Facebook account. Log Out / Modifica )

Connecting to %s

Iscriviti

Get every new post delivered to your Inbox.

Join 28 other followers