La necessità di imparare a usare gli editor di testo in Linux è indiscutibile. Ogni amministratore di sistema e ingegnere si occupa quotidianamente di file di configurazione (testo normale) e la maggior parte delle volte ciò viene fatto utilizzando esclusivamente uno o più strumenti da un'interfaccia a riga di comando (come nano, vim, o emacs).
Mentre nano è forse più adatto ai nuovi utenti, vim o emacs sono lo strumento preferito dagli utenti più esperti grazie alle sue capacità avanzate.
Ma c'è ancora un altro motivo per cui imparare a usare uno di questi editor di testo dovrebbe essere una priorità assoluta per te: potresti imbatterti in un server solo CLI o eseguire in un problema con il desktop manager nel tuo server o desktop Linux basato su GUI e l'unica risorsa per esaminarlo e modificare i file di configurazione è il comando linea.
Tra questo articolo e il prossimo di questa serie di 2 articoli, esamineremo 15 consigli e trucchi
per migliorare la tua vim abilità. Si presume che tu abbia già familiarità con questo editor di testo. In caso contrario, fatti un favore e conosci vim prima di procedere oltre: potresti fare riferimento a Come usare vi/vim come editor di testo completo per una guida molto dettagliata su come iniziare con vim.Parte 2: 8 suggerimenti e trucchi interessanti per l'editor "Vi/Vim"
Dopo aver avviato vim, premi F1 o usa :h in ex modalità per accedere alla guida in linea. Puoi passare a una sezione o argomento specifico posizionando il cursore su di esso e quindi premendo Ctrl+]
(Ctrl, quindi la parentesi quadra di chiusura).
Al termine, premere Ctrl+t
per tornare alla schermata precedente. In alternativa, puoi cercare un argomento o un comando specifico con :h
.
Per esempio,
:h x
visualizzerà l'aiuto per il X(Elimina) comando:
e
:h sostituto.
farà apparire l'aiuto sul sostituire comando (il nostro consiglio finale in questo articolo).
Se ti ritrovi a modificare un file più grande di uno schermo, apprezzerai la funzionalità fornita da segni. Puoi pensare a un segno in vim come un segnalibro: una volta posizionato da qualche parte, puoi tornarci rapidamente e facilmente. Supponiamo che tu stia modificando un 300 parole file di configurazione e per qualche motivo è necessario passare ripetutamente da una riga all'altra 30 e 150 Per esempio.
Per prima cosa, vai alla riga #30 inserendo :30 in ex modalità, quindi torna alla modalità di comando e premi ma (m, poi un) per creare un marchio denominato "un" in linea 30.
Quindi vai alla riga 250 (con :250 in modalità ex) e premi `a
(backtick, allora un) per tornare a segnare un in linea 30. Puoi usare lettere minuscole e maiuscole per identificare i segni in vim (ora ripeti il processo per creare un segno chiamato UN in linea #250).
Puoi visualizzare i tuoi voti con
: segna aA.
Come puoi vedere, ogni segno è referenziato da una specifica posizione di riga/colonna sul file, non solo per riga.
Supponiamo che tu stia modificando uno script di shell e ti rendi conto che lo sviluppatore precedente era piuttosto pessimo quando si tratta di indentazione. Vediamo come puoi risolverlo con un paio di comandi vim.
Innanzitutto, seleziona un blocco visivo posizionando il cursore all'inizio del blocco, quindi premendo Ctrl+v (Ctrl, poi v).
Quindi premere il .
(punto) comando per ripetere entrambi i rientri. Il blocco selezionato si sposterà a destra oa sinistra con un solo tasto.
Un altro classico esempio di utilizzo del punto comando è quando è necessario eliminare una serie di parole: posizionare il cursore sulla prima parola che si desidera eliminare, quindi premere dw. Per continuare a eliminare le parole successive, premi .
(più breve e più facile che ripetere dw parecchie volte).
Se il layout della tastiera non consente di inserire facilmente caratteri Unicode speciali in un file o se trovi te stesso davanti a un server con impostazioni di lingua diverse da quella a cui sei abituato, questo trucco arriverà maneggevole.
Per fare ciò, premere Ctrl+v in modalità inserimento seguito dalla lettera tu e il codice numerico esadecimale del carattere che si desidera inserire. Puoi controllare il Grafici Unicode per un elenco di caratteri speciali e i relativi codici numerici.
Per esempio,
Ctrl+v seguito da | ritorna |
u0040 | @ |
u00B5 | μ |
u20AC | € |
Ci saranno momenti in cui dovrai inserire l'output di comandi esterni direttamente in un file che viene modificato con vim. Ad esempio, creo spesso una variabile denominata DIR nei miei script per memorizzare il percorso assoluto della directory in cui risiede lo script per utilizzarlo successivamente nello script. Per farlo, utilizzo:
:R! pwd
in ex modalità. Pertanto, viene inserita la directory di lavoro corrente.
Un altro esempio: se ti viene richiesto di utilizzare il gateway predefinito da qualche parte in uno script, puoi inserirlo facilmente nel file corrente senza uscire da vim come segue:
:!r ip route mostra | grep predefinito | taglia -f 3 -d " "
Se devi aggiungere il contenuto di un file separato a quello che stai attualmente modificando, la sintassi è simile al suggerimento precedente. Basta omettere il segno esclamativo e sei a posto.
Ad esempio, per copiare il contenuto di /etc/passwd:
:r /etc/passwd.
Potresti trovare utile questo suggerimento quando devi modificare i file di configurazione ma vuoi mantenere quelli originali per tornare a "impostazioni di fabbrica" per così dire.
Storia vera. Una volta, durante un esame, mi è stato chiesto di aprire un file di testo di grandi dimensioni contenente dati casuali. Il compito assegnato consisteva nel sostituire ogni occorrenza della parola Globo insieme a terra (sì, ricordo ancora le parole esatte). Per chi ha familiarità con sed, questo suonerà un campanello – in ex modalità, digitare:
:%s/vecchio/nuovo/g.
dove vecchio è il modello da cercare e nuovo è la stringa che lo sostituirà.
Nel caso sopra descritto ho utilizzato:
:%s/Globo/Terra/g.
per portare a termine il lavoro.
Quindi che ne dici se vuoi essere avvisato prima di effettuare sostituzioni? Facile. Basta aggiungere un C al termine del comando precedente, come segue:
:%s/vecchio/nuovo/gc.
Le occorrenze del pattern verranno evidenziate e ti verrà chiesto se desideri sostituirlo con la nuova stringa:
:%s/gacanepa/me/gc.
dove
In questo articolo abbiamo iniziato a recensirne alcuni consigli e trucchi vim da aggiungere alle tue capacità di modifica del testo. Probabilmente penserai a molti altri, quindi per favore condividili utilizzando il modulo sottostante e prenderò in considerazione la possibilità di trattarli nel prossimo e ultimo articolo di questa serie di vim. Aspetto tue notizie.