Che tu ci creda o no, uso Vim come elaboratore di testi quotidiano. Mi piace il suo layout semplice e il suo design modale che privilegia i comandi della tastiera rispetto ai clic del mouse.
Anche se probabilmente conosci Vim come un editor di testo più adatto per la codifica che per la prosa, con alcune modifiche, anche tu puoi scrivere documenti come se fossi in Word o LibreOffice rimanendo nei comodi confini di un terminale.
Iniziare
Se non hai già familiarizzato con le basi di Vim, dai un’occhiata a questo articolo, che è il primo di una serie di quattro. Assicurati di imparare come aprire un file di testo, entrare e uscire dal programma e spostarti sullo schermo con la tastiera prima di saltare ulteriormente in questo pezzo.
Installazione
La tua distribuzione Linux probabilmente viene fornita con Vim nel suo repository di pacchetti, quindi puoi installarlo facilmente con il tuo gestore di software o gestore di pacchetti. Quando in seguito modifichi il file di configurazione di Vim, puoi farlo come un normale utente.
Arch Linux:
sudo pacman -S vim
Fedora:
sudo dnf install vim
Ubuntu:
sudo apt install vim
Tutti gli altri possono prendere Vim dal suo repository Github:
git clone https://github.com/vim/vim.git cd ./vim/src/ make sudo make install
Il file di configurazione di Vim
Un’installazione di Vim può creare un file .vimrc nella directory home. In caso contrario, creane uno:
touch ~/.vimrc
Puoi aprirlo con Vim stesso:
cd vim .vimrc
Il nostro elaboratore di testi
Ora probabilmente stai guardando un file vuoto. Cambiamolo.
Possiamo creare una funzione chiamata “WordProcessor” che puoi richiamare in qualsiasi momento. Sarà simile a questo:
func! WordProcessor() " movement changes map j gj map k gk " formatting text setlocal formatoptions=1 setlocal noexpandtab setlocal wrap setlocal linebreak " spelling and thesaurus setlocal spell spelllang=en_us set thesaurus+=/home/test/.vim/thesaurus/mthesaur.txt " complete+=s makes autocompletion search the thesaurus set complete+=s endfu com! WP call WordProcessor()
Ora che vedi la funzione nel suo insieme, possiamo scomporre le sue parti. Segui guardando le sezioni della nostra funzione commentate con una virgoletta singola, le singole linee in grigio.
1. Il movimento cambia con map j gj
e map k gk
Quello che vedi qui è un cambiamento nel modo in cui funziona il movimento del cursore all’interno di Vim. Se leggi i precedenti articoli di Vim menzionati all’inizio di questo articolo, lo saprai j sposta il cursore in basso e K sposta il cursore in alto. Allo stesso modo, gj e gk ti spostano verso il basso e verso l’alto, ma spostano il cursore per riga sullo schermo piuttosto che per riga nel file.
La nostra mappatura di j/K per gj/gk dà al cursore la possibilità di spostarsi su e giù attraverso le linee avvolte sullo schermo. Questo aiuta quando stai digitando lunghi paragrafi e devi spostare facilmente il cursore al centro di quei paragrafi.
2. Formattazione del testo con i comandi “setlocal”
Per prima cosa, vedi setlocal formatoptions=1
. “Formatoptions” ti consente di scegliere tra una serie di modalità di formattazione del testo. Nel caso dell’opzione “1”, Vim eviterà di interrompere le righe dopo una parola di una lettera. Quando possibile, tenterà di interrompere le righe prima della parola di una lettera.
Il prossimo, setlocal noexpandtab
ti permette di impedire a Vim di cambiare tabulazione in spazi. Ad esempio, l’impostazione “expandtab” dirà a Vim di modificare la pressione del tasto Tab in un numero di spazi che si adatta alla stessa lunghezza. “Noexpandtab” fa l’opposto; conserva la pressione delle Tab come un singolo carattere.
setlocal wrap
dice a Vim di avvolgere il testo quando raggiunge la fine dello schermo. Questo è il comportamento che ti aspetteresti da un word processor.
Infine, setlocal linebreak
fa in modo che Vim rompa le tue linee in luoghi sensibili. Mantiene le tue linee dall’ultimo carattere che si adatta allo schermo. Questo è il motivo per cui, in parte, vedrai le righe di testo raggiungere vari punti sullo schermo prima di tornare all’inizio. Guarda come appare con una copia incompleta di questo articolo nello screenshot qui sotto
3. Ortografia e un thesaurus offline
Vim è dotato di un’abilità di controllo ortografico incorporata. È possibile fare in modo che la funzione “Elaboratore di testi” utilizzi tale capacità utilizzando il comando setlocal spell spelllang=en_us
. Puoi definire più lingue qui in un elenco separato da virgole.
Trova altri file di lingua su questo sito FTP di Vim. Posiziona i file selezionati (sia file .spl che .sug per ciascuna lingua) in “$ HOME / .vim / spell /”. Cambia la linea della tua funzione in set spelllang=en_us,nl,medical
, ad esempio, per verificare la presenza di parole in inglese, olandese e mediche.
Le parole con errori di ortografia verranno visualizzate come sottolineate e in grassetto nel testo.
È possibile cercare sostituzioni inserendo :z=
in modalità normale. (Usa il tasto Esc per accedere alla modalità Normale.) Quel comando produrrà una schermata come l’immagine seguente.
Puoi usare la funzione del thesaurus di Vim dicendogli la directory del thesaurus scelta con set thesaurus+=/home/<user>/.vim/thesaurus/mthesaur.txt
o simili. È possibile trovare il file “mthesaur.txt” al Progetto Gutenberg. Posiziona il file di testo scaricato nella directory che definisci con quel comando.
Cerca parole simili alla parola evidenziata accedendo alla modalità di inserimento (premere io in modalità Normale) e digitando Ctrl + X e poi Ctrl + t. Ti mostrerà un elenco come l’immagine seguente che puoi scorrere per trovare una nuova parola.
A volte i suggerimenti non sono i migliori.
4. Completamento automatico delle parole con l’opzione “completo”
Guarda a set complete+=s
per la nostra considerazione finale. Questa opzione dice a Vim di cercare nel tuo thesaurus una parola che vuoi completare automaticamente.
Normalmente, puoi completare automaticamente le parole facendo in modo che Vim guardi le parole precedenti che hai digitato, come “errore di ortografia” e “errore” nella schermata seguente. Devi solo entrare in modalità di inserimento e digitare Ctrl + n o Ctrl + p per cercare una parola che, ad esempio, la mezza grafia “mis” corrisponde.
Vedi come le prime due selezioni non provengono dal thesaurus? Queste due righe sono le uniche opzioni che vedresti qui se la nostra funzione non avesse utilizzato “complete + = s”. Puoi omettere o commentare quella riga per completamenti automatici più rapidi.
Avvio del tuo elaboratore di testi
L’ultima riga del tuo .vimrc che fa funzionare la funzione WordProcessor è com! WP call WordProcessor()
. Ti consente di digitare :WP
in modalità Normale per impostare le capacità di elaborazione testi di Vim.
Puoi modificare il “WP” in questa riga per leggere tutto ciò che ti piace – assicurati solo che il testo sia contiguo. Qualunque testo tu scelga cambierà il comando in :<your-text>
.
Conclusione
La funzionalità che ho discusso qui dura solo per una singola sessione di Vim. Pertanto, quando chiudi e riapri Vim, le impostazioni predefinite verranno nuovamente applicate. Ciò accadrà anche se apri lo stesso file una seconda volta.
Puoi impostare queste opzioni al di fuori la funzione per farli funzionare tutto il tempo, ma potrebbero non rendere giustizia a molti dei compiti di programmazione che Vim è stato creato per gestire. Comunque non è difficile digitare un paio di caratteri. Goditi le tue nuove impostazioni e il fatto di aver trasformato il tuo terminale in un potente editor di paragrafi.