Experimentalia

Appunti raminghi

Vi: auguro Buona Pasqua a tutti

with one comment

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.

Written by Eineki

aprile 4, 2010 a 12:40 pm

Pubblicato su linux, tip&tricks

Una Risposta

Subscribe to comments with RSS.

  1. Repetita iuvant.
    Comunque, bell’articolo.

    DRerAGO

    aprile 4, 2010 at 16:14 pm


Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: