Ricerca nel sito web

8 interessanti suggerimenti e trucchi per l'editor "Vi/Vim" per ogni amministratore Linux - Parte 2


Nell'articolo precedente di questa serie abbiamo esaminato 7 suggerimenti e trucchi da aggiungere al tuo set di competenze vi/m. Oltre ai motivi indicati in precedenza, imparare a utilizzare in modo efficace un editor di testo in Linux è una capacità essenziale per un amministratore o ingegnere di sistema ed è una competenza richiesta per superare qualsiasi importante programma di certificazione Linux (come LFCS, LFCE, RHCSA e RHCE) .

Detto questo, cominciamo.

CONSIGLIO N. 8: crea finestre orizzontali o verticali

Questo suggerimento è stato condiviso da Yoander, uno dei nostri lettori, nella Parte 1. Puoi avviare vi/m con più divisioni orizzontali o verticali per modificare file separati all'interno della stessa finestra principale:

Avvia vi/m con due finestre orizzontali, con test1 in alto e test2 in basso

vim -o test1 test2 

Avvia vi/m con due finestre verticali, con test3 a sinistra e test4 a destra:

vim -O test3 test4 

Puoi spostare il cursore da una finestra all'altra con la consueta routine di movimento vi/m (h: destra, l: sinistra, j: in basso, k: in alto):

  1. Ctrl+w k – in alto
  2. Ctrl+w j – in basso
  3. Ctrl+w l – sinistra
  4. Ctrl+w h – destra

CONSIGLIO N. 9: cambia lettere, parole o intere righe in MAIUSCOLO o minuscolo

Tieni presente che questo suggerimento funziona solo in vim. Negli esempi successivi, X è un numero intero.

  1. Per trasformare una serie di lettere in maiuscolo, posiziona il cursore sulla prima lettera, quindi digita gUX in modalità ex e infine premi la freccia destra sulla tastiera.
  2. Per modificare il numero X di parole, posiziona il cursore all'inizio della parola e digita gUXw in modalità ex.
  3. Per trasformare un'intera riga in maiuscolo, posiziona il cursore in un punto qualsiasi della riga e digita gUU in modalità ex.

Ad esempio, per convertire un'intera riga da minuscolo a maiuscolo, dovresti posizionare il cursore in un punto qualsiasi della riga e digitare gUU:

Ad esempio, per convertire 2 parole maiuscole in minuscole, dovresti posizionare il cursore all'inizio della prima parola e digitare gu2w:

SUGGERIMENTO n. 10: elimina caratteri, parole o l'inizio di una riga in modalità INSERT

Anche se puoi eliminare caratteri o più parole contemporaneamente in modalità ex (ad esempio dw per eliminare una parola), puoi farlo anche in modalità Inserisci come segue:

  1. Ctrl + h: cancella il carattere precedente nel punto in cui si trova attualmente il cursore.
  2. Ctrl + W: cancella la parola precedente nel punto in cui si trova attualmente il cursore. Perché funzioni correttamente, il cursore deve essere posizionato in uno spazio vuoto dopo la parola che si desidera eliminare.
  3. Ctrl + u: elimina la riga corrente che inizia dal carattere immediatamente a sinistra del punto in cui si trova il cursore.

SUGGERIMENTO n. 11: sposta o copia le righe esistenti su un'altra riga del documento

Sebbene sia vero che puoi utilizzare i noti comandi gg, yy e p in modalità ex per eliminare, copiare (copiare) e incollare righe rispettivamente, ciò funziona solo quando il cursore è posizionato nel punto in cui desideri eseguire tali operazioni . La buona notizia è che con i comandi copia e sposta puoi fare lo stesso indipendentemente da dove è attualmente posizionato il cursore.

Per il prossimo esempio utilizzeremo una breve poesia intitolata “Forever” di Terri Nicole Tharrington. Per iniziare, chiederemo a vim di visualizzare i numeri di riga (:set nu in modalità Comando – consideralo un suggerimento extra). Utilizzeremo :3copy5 (anche in modalità Comando) per copiare la riga 3 sotto la riga 5:

Ora annulla l'ultima modifica (Esc + u – un altro suggerimento bonus!) e digita :1move7 per sostituire la riga 7 con la riga 1. Nota come vengono spostate le righe da 2 a 7 in alto e la precedente riga 1 ora occupa la riga 7:

SUGGERIMENTO n. 12: conta le corrispondenze risultanti da una ricerca per modello e passa da un'occorrenza all'altra

Questo suggerimento si basa sul comando sostitutivo (suggerimento #7 nella Parte 1 di questa serie), con l'eccezione che non rimuoverà nulla poiché il comportamento sostitutivo viene sovrascritto da l'opzione n, risultante nel conteggio delle occorrenze del modello specificato:

Assicurati di non omettere nessuna delle barre!

:%s/pattern//gn 

Per esempio,

:%s/libero//gn

Per passare da un'occorrenza del pattern a quella successiva in modalità ex, premere n (N minuscola). Per passare all'istanza precedente, premi N.

SUGGERIMENTO n. 13: aprire direttamente vi/m in una riga specificata

Per impostazione predefinita, quando si avvia vi/m, il cursore viene inizialmente posizionato nell'ultima riga modificata. Se vuoi aprire il programma e posizionare il cursore direttamente su una riga specifica, puoi utilizzare il seguente trucco:

vim filename +line_number

Ad esempio, apri forever.txt e posiziona il cursore sulla riga 6:

vim forever.txt +6

Modifichiamo un po’ questo esempio. Supponiamo di voler aprire il file sulla riga in cui appare la terza occorrenza del pattern:

vim filename +$(grep -in pattern filename | sed -n 3p | cut -d: -f1)

Diamo uno sguardo più da vicino a cosa fa il comando precedente:

  1. grep -in pattern filename: visualizza tutte le righe dal nome file in cui si trova il pattern, con il numero di riga all'inizio di ciascuna riga di output.
  2. sed -n 3p: visualizza la terza riga dell'output della pipeline precedente.

Finalmente,

  1. cut -d: -f1 restituisce il primo campo della pipeline precedente con i due punti (:) come separatore di campo.
grep -in forever forever.txt
grep -in forever forever.txt | sed -n 3p
grep -in forever forever.txt | sed -n 3p | cut -d: -f1

Il risultato del comando precedente viene quindi passato a vi/m per aprire il programma alla riga specificata.

SUGGERIMENTO n.14: personalizzare il proprio ambiente vi/m

Se usi vi/m per modificare file di configurazione o per scrivere codice, vorrai essere in grado di visualizzare i numeri di riga quando apri il programma per la prima volta e di impostare il rientro automatico in modo che quando premi il tasto Invio Tasto , il cursore verrà automaticamente posizionato nella posizione corretta. Inoltre, potresti voler personalizzare il numero di spazi bianchi occupati da una scheda.

Anche se puoi farlo ogni volta che avvii vi/m, è più semplice impostare queste opzioni in ~/.vimrc in modo che vengano applicate automaticamente:

set number
set autoindent
set shiftwidth=4
set softtabstop=4
set expandtab

Per ulteriori opzioni per personalizzare il tuo ambiente vi/m, puoi fare riferimento alla documentazione online di vim.

SUGGERIMENTO n. 15: ottieni aiuto/opzioni generali di Vim con vimtutor

Se in qualsiasi momento hai bisogno di rispolverare le tue abilità generali su vi/m, puoi avviare vimtutor dalla riga di comando che visualizzerà un aiuto completo su vi/m a cui potrai fare riferimento tutte le volte che desideri senza la necessità di avviare un browser web per cercare come eseguire una determinata attività in vi/m.

vimtutor

Tieni presente che puoi navigare o cercare nei contenuti di vimtutor come se stessi navigando in un normale file in vi/m.

Riepilogo

In questa serie di 2 articoli ho condiviso diversi suggerimenti e trucchi per vi/m che dovrebbero aiutarti a essere più efficace quando si tratta di modificare il testo utilizzando gli strumenti da riga di comando. Sono sicuro che ne avrai altri, quindi sentiti libero di condividerli con il resto della community utilizzando il modulo sottostante. Come sempre, anche domande e commenti sono benvenuti.