Articolo originale: Vimrc Configuration Guide - How to Customize Your Vim Code Editor with Mappings, Vimscript, Status Line, and More

Configurare il file  .vimrc ti consente di sfruttare il pieno potenziale di Vim. Con un file .vimrc personalizzato puoi moltiplicare la potenza di Vim.

In questo articolo, ti mostrerò alcuni modi per personalizzare il tuo file .vimrc.

Esaminerò:

  • Impostazioni base
  • Plugin
  • Piegature (folding)
  • Script di Vim (Vimscript)
  • Riga di stato

Per prima cosa, crea la seguente struttura di directory nella tua home con il comando sotto indicato:

.vim/
 ├── autoload/
 ├── backup/
 ├── colors/
 └── plugged/
$ mkdir -p ~/.vim ~/.vim/autoload ~/.vim/backup ~/.vim/colors ~/.vim/plugged

Quindi crea un file .vimrc nella tua directory home.

$ touch ~/.vimrc

Come Aggiornare le Impostazioni di Base in Vim

Per prima cosa aggiungiamo alcune impostazioni di base che miglioreranno la tua esperienza di editing. Userò i doppi apici per commentare le righe.

Aggiungi quanto segue al file .vimrc:

" Disabilita la compatibilità con vi che può causare problemi inaspettati.
set nocompatible

" Abilita il rilevamento del tipo di file. Vim sarà in grado di aiutarti a rilevare il tipo di file in uso.
filetype on

" Abilita i plugin e carica i plugin per il tipo di file rilevato.
filetype plugin on

" Carica il file di indentazione per il tipo di file rilevato.
filetype indent on

L'evidenziazione della sintassi è molto utile. La riga che segue abilita l'evidenziazione della sintassi rendendo il tuo codice più facile da leggere.

" Abilta l'evidenziazione della sintassi.
syntax on

Senza evidenziazione sintassi:

vim-no-highlighting.png

Con evidenziazione sintassi:

vim-highlighting.png

Puoi anche scegliere di visualizzare i numeri di riga per spostarti più facilmente nel file.

" Aggiungi i numeri a ciascuna riga nella parte sinistra.
set number
set-numbers.png

Puoi individuare esattamente dove si trova il cursore evidenziando la riga sia orizzontalmente che verticalmente.

Aggiungi queste righe per abilitare la funzionalità.

" Evidenzia orizzontalmente la riga dove si trova il cursore.
set cursorline

" Evidenzia verticalmente la riga dove si trova il cursore.
set cursorcolumn
set-cursor-line-column.png

Di seguito alcune delle altre più comuni impostazioni che possono migliorare la tua esperienza di editing.
Ogni riga è commentata con la spiegazione di cosa fa l'opzione.

Aggiungi queste righe al tuo file .vimrc.

" Imposta lo shift a 4 spazi.
set shiftwidth=4

" Imposta il tab a 4 colunne.
set tabstop=4

" Usa gli spazi invece del carattere di tabulazione.
set expandtab

" Non salvare file di backup.
set nobackup

" Non consentire al cursore di spostarsi sopra o sotto N numeri di righe durante lo scorrimento.
set scrolloff=10

" Non andare a capo sulle righe. Consenti righe tanto lunghe quanto la massima estensione possibile.
set nowrap

" Durante la ricerca incrementale in un file, evidenzia i caratteri che trovano corrispondenza mentre digiti.
set incsearch

" Ignora le maiuscole durante la ricerca.
set ignorecase

" Ignora l'opzione ignorecase se nella ricerca digiti lettere maiuscole.
" Questo ti consente di cercare specificamente lettere maiuscole.
set smartcase

" Mostra la parte del comando che digiti nell'ultima riga dello schermo.
set showcmd

" Mostra la modalità nella quale ti trovi nell'ultima riga.
set showmode

" Mostra le parole corrispondenti durante una ricerca.
set showmatch

" Usa l'evidenziazione durante una ricerca.
set hlsearch

" Imposta il numero di comandi da salvare nella cronologia (default è 20).
set history=1000

Il completamento di Bash è una grande funzionalità che ti risparmia digitazioni sulla tastiera completando automaticamente quello che digiti. Vim ha una funzionalità simile chiamata wildmenu.

Aggiungi le seguenti righe per abilitare wildmenu. Vedrai un elenco di file che corrispondono al file che stai cercando. Puoi anche abilitare l'autocompletamento in Vim.

" Abilita il menu di autocompletamento quando digiti TAB.
set wildmenu

" Rende il comportamento di wildmenu simile a quello del completamento in Bash.
set wildmode=list:longest

" Ci sono alcuni file che non vogliamo mai editare in Vim.
" Wildmenu ignorerà i file con queste estensioni.
set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx
vim-wildmenu.gif

Digita :help <comando> per maggiori informazioni su uno specifico comando.

Esempio:

:help nocompatible

Come Piegare (Nascondere) File Grandi in Vim

Il file .vimrc può assumere grandi dimensioni, quindi organizzarlo in sezioni è una buona idea. Vim ti consente di "piegare" porzioni di file di grandi dimensioni nascondendo sezioni di testo.

Aggiungi le seguenti righe alla fine del tuo file .vimrc per organizzare il file in sezioni.

" PLUGINS ---------------------------------------------------------------- {{{

" Il codice per i plugin va qui.

" }}}


" MAPPINGS --------------------------------------------------------------- {{{

" Il codice per le mappature va qui.

" }}}


" VIMSCRIPT -------------------------------------------------------------- {{{

" Questo abilita la piegatura del codice.
" Usa il metodo di marcatura (marker) per la piegatura.
augroup filetype_vim
    autocmd!
    autocmd FileType vim setlocal foldmethod=marker
augroup END

" Codice per altri Vimscripts va qui.

" }}}


" STATUS LINE ------------------------------------------------------------ {{{

" Il codice per la riga di stato va qui.

" }}}

Salva il file .vimrc con il comando :w e ricarica .vimrc con il comando :source ~/.vimrc per rendere effettive le modifiche. Ora quando sposti il tuo cursore su un contrassegno di piegatura puoi digitare:

zo per aprire la piegatura al cursore.

zc per chiudere la piegatura al cursore.

zR per aprire tutte le piegatura.

zM per chiudere tutte le piegature.

vim-open-close-fold.gif

Digita :help folding per maggiori informazioni.

Come Aggiungere Plugin a Vim

Per aggiungere funzionalità a Vim puoi utilizzare i plugin. Molti usano un gestore di plugin per facilitare l'installazione dei medesimi.

Ci sono diversi gestori di plugin che possiamo usare. Ti mostrerò come installare e usare il gestore di plugin vim-plug .

Per installarlo esegui questo comando:

Su Linux o Mac OS.

$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Su Windows con Powershell.

$ irw -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |`
    ni $HOME/vimfiles/autoload/plug.vim -Force

Aggiungi le righe call plug#begin('~/.vim/plugged') e call plug#end() nella sezione plugin. I riferimenti dei plugin da installare saranno aggiunti tra le due chiamate di funzione.

" PLUGINS ---------------------------------------------------------------- {{{

call plug#begin('~/.vim/plugged')




call plug#end()

" }}}

Ora installare plugin è tanto facile quanto aggiungere la stringa Plug 'username/nome-plugin' che trovi in  GitHub tra le due chiamate di funzione.

Ecco come ho installato i plugin NERDTree e Asynchronous Lint Engine (ALE).

Aggiungi queste due righe tra le due istruzioni call plug#...:

" PLUGINS ---------------------------------------------------------------- {{{

call plug#begin('~/.vim/plugged')


  Plug 'dense-analysis/ale'

  Plug 'preservim/nerdtree'


call plug#end()

" }}}

Salva il file .vimrc con il comando :w  e ricarica  .vimrc con il comando :source ~/.vimrc per rendere effettive le modifiche.

Ora digita :PlugInstall per scaricare e installare i due plugin.

vim-plug-install.png

Come Mappare le Scorciatoie da Tastiera in Vim

Nella sezione "mappings" di .vimrc aggiungeremo scorciatoie per facilitare la digitazione dei comandi più lunghi. In questo modo risparmierai molto tempo, specialmente per comandi lunghi.

La sintassi per la mappatura dei tasti è la seguente:

modalità_mappatura <quello_che_digiti> <quello_che_viene_eseguito>

Modalità di Mappatura Popolari in Vim

Di seguito alcune popolari modalità di mappatura, e probabilmente le più utili e importanti.

  • nnoremap – Consente la mappatura dei tasti in modalità normal (normale).
  • inoremap – Consente la mappatura dei tasti in modalità insert (inserimento).
  • vnoremap – Consente la mappatura dei tasti in modalità visual (visuale).

Un comune esempio di mappatura è la combinazione dei tasti  'jj' con il tasto di escape ESC. Dovrai utilizzare molto il tasto ESC , che si trova all'estremità della tastiera. La lettera "j", viceversa, è nel mezzo della tastiera quindi è più facile per te digitare "jj" invece che raggiungere il tasto ESC.

Ecco come dovresti mappare il tasto ESC a jj:

inoremap jj <esc>

Come Usare Mapleader in Vim

Mapleader ti consente di impostare un tasto non utilizzato da Vim come tasto  <leader> .
Il tasto leader, in combinazione con un altro tasto, ti consente di creare nuove scorciatoie.

Il tasto della barra rovesciata "\" è il tasto leader predefinito ma alcuni preferiscono modificarlo in una virgola ",".

let mapleader = "\"

Con il tasto leader mappato alla barra rovesciata, posso usarlo in questo modo:

Disabilita l'evidenziazione della ricerca digitando \\:
nnoremap <leader>\ :nohlsearch<CR>

Di seguito alcune comuni mappature usate (vedi i commenti per una spiegazione).

Aggiungi questo codice alla sezione "mappings":

" MAPPINGS --------------------------------------------------------------- {{{

" Imposta la barra rovesciata come tasto leader.
let mapleader = "\"

" Digita \\ per tornare all'ultima posizione del cursore.
nnoremap <leader>\ ``

" Digita \p per stampare il file corrente alla stampante predefinta da un sistema operativo Linux.
" Visualizza le stampanti disponibili:   lpstat -v
" Imposta la stampante predefinita:       lpoptions -d <printer_name>
" <silent> significa non visualizzare output.
nnoremap <silent> <leader>p :%w !lp<CR>

" Digita jj per uscire velocemente dalla modalità insert.
inoremap jj <Esc>

" Usa la barra spaziatrice per digitare il carattere : in modalità comandi.
nnoremap <space> :

" Digitando la lettera o verrà aperta una nuova riga sotto quella corrente.
" Esce dalla modalità inserimento dopo aver creato una nuova riga sopra  o sotto quella corrente.
nnoremap o o<esc>
nnoremap O O<esc>

" Centra il cursore verticalmente quando ti sposti alla parola successiva durante una ricerca.
nnoremap n nzz
nnoremap N Nzz

" Copia dal cursore alla fine della riga.
nnoremap Y y$

" Mappa il tasto F5 per eseguire uno script Python all'interno di Vim.
" Qui mappo F5 a una catena di comandi.
" :w salva il file.
" <CR> (carriage return) è come premere ENTER.
" !clear esegue il comando esterno clear screen per pulire lo schermo.
" !python3 % esegue con Python il file corrente.
nnoremap <f5> :w <CR>:!clear <CR>:!python3 % <CR>

" Puoi dividere la finestra in Vim digitando :split (dividi orizzontalmente) o :vsplit (dividi verticalmente).
" Puoi spostarti più facilmente tra le finestre digitando CTRL+j, CTRL+k, CTRL+h, or CTRL+l.
nnoremap <c-j> <c-w>j
nnoremap <c-k> <c-w>k
nnoremap <c-h> <c-w>h
nnoremap <c-l> <c-w>l

" Ridimensiona le finestre usando i tasti preccia digitando:
" CTRL+UP, CTRL+DOWN, CTRL+LEFT, or CTRL+RIGHT.
noremap <c-up> <c-w>+
noremap <c-down> <c-w>-
noremap <c-left> <c-w>>
noremap <c-right> <c-w><

" Mappature specifiche per il plugin NERDTree.
" Mappa il tasto F3 per aprire/chiudere NERDTree.
nnoremap <F3> :NERDTreeToggle<cr>

" Fa ignorare a nerdtree file con certe estensioni e certe directory.
let NERDTreeIgnore=['\.git$', '\.jpg$', '\.mp4$', '\.ogg$', '\.iso$', '\.pdf$', '\.pyc$', '\.odt$', '\.png$', '\.gif$', '\.db$']

" }}}

Digita help: map-modes per maggiori informazioni.

Come Aggiungere Qualche Script di Vim

Vimscript è il linguaggio di scripting che ti consente di creare script usando variabili, istruzioni if else e funzioni. Gli auto comandi (autocmd) sono in attesa del verificarsi di eventi per attivare un comando.

" VIMSCRIPT -------------------------------------------------------------- {{{

" Abilita il metodo di marcatura per la piegatura.
augroup filetype_vim
    autocmd!
    autocmd FileType vim setlocal foldmethod=marker
augroup END

" Se il tipo di file corrente è HTML, imposta l'indentazione a 2 spazi.
autocmd Filetype html setlocal tabstop=2 shiftwidth=2 expandtab

" Se la versione di Vim è maggiore/uguale a 7.3 abilita undofile.
" Questo ti consente di ripristinare le modifiche a un file anche dopo averlo salvato.
if version >= 703
    set undodir=~/.vim/backup
    set undofile
    set undoreload=10000
endif

" Puoi dividere una finestra in sezioni digitando `:split` o `:vsplit`.
" Visualizza la riga e la colonna del cursore solo nella finestra attiva.
augroup cursor_off
    autocmd!
    autocmd WinLeave * set nocursorline nocursorcolumn
    autocmd WinEnter * set cursorline cursorcolumn
augroup END

" Se è in esecuzione una versione GUI di Vim imposta queste opzioni.
if has('gui_running')

    " Imposta la tonalità dello sfondo.
    set background=dark

    " Imposta lo schema di colorazione.
    colorscheme molokai

    " Imposta un font personalizzato che devi avere installato nel tuo computer.
    " Sitassi: set guifont=<font_name>\ <font_weight>\ <size>
    set guifont=Monospace\ Regular\ 12

    " In modalità predefinita visualizza altre informazioni oltre al nome del file.
    " Nascondi la barra degli strumenti.
    set guioptions-=T

    " Nascondi la barra di scorrimento di sinistra.
    set guioptions-=L

    " Nascondi la barra di scorrimento di destra.
    set guioptions-=r

    " Nascondi la barra del menu.
    set guioptions-=m

    " Nascondi la barra di scorrimento inferiore.
    set guioptions-=b

    " Mappa il tasto F4 per attivare/disattivare il menu, la barra degli strumenti e la barra di scorrimento.
    " <Bar> è il carattere pipe (|).
    " <CR> è il tasto ENTER.
    nnoremap <F4> :if &guioptions=~#'mTr'<Bar>
        \set guioptions-=mTr<Bar>
        \else<Bar>
        \set guioptions+=mTr<Bar>
        \endif<CR>

endif

" }}}

Leggi Learn Vimscript the Hard Way per maggiori informazioni su Vimscript.

Digita :help autocmd per maggiori informazioni sugli auto comandi.

Come Aggiungere uno Schema di Colorazione a Vim

Puoi facilmente aggiungere schemi di colorazione a Vim per modificare i suoi colori predefiniti. Cerca in Internet "Vim color schemes" e potrai trovare moltissimi schemi da cui scegliere.

Installare uno schema di colorazione è tanto facile quanto aggiungere un file <schemacolore>.vim alla directory ~/.vim/colors/ .

Aggiungerò il popolare schema molokai:

$ cd ~/.vim/colors

$ curl -o molokai.vim https://raw.githubusercontent.com/tomasr/molokai/master/colors/molokai.vim
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  7558  100  7558    0     0   150k      0 --:--:-- --:--:-- --:--:--  150k

Per impostare lo schema di colorazione digita il comando:

:colorscheme molokai

Esempi di schemi di colorazione:

vim_four_colorschemes
schemi di colorazione: molokai, base16-tomorrow, blue, one

Come Configurare la Barra di Stato in Vim

Puoi corredare la barra di stato di Vim con informazioni utili. Per esempio configurare il tipo di file, il numero totale di righe nel file, il percorso del file, il numero di colonna e di riga, la percentuale di avanzamento rispetto all'inizio del file e molto altro.

Aggiungi questo codice alla sezione "status line":

" STATUS LINE ------------------------------------------------------------ {{{

" Pulisci lo riga di stato quando Vim viene ricaricato.
set statusline=

" Lato sinistro della riga di stato.
set statusline+=\ %F\ %M\ %Y\ %R

" Usa un separatore per dividere la parte destra dalla sinistra.
set statusline+=%=

" Lato destro della riga di stato.
set statusline+=\ ascii:\ %b\ hex:\ 0x%B\ row:\ %l\ col:\ %c\ percent:\ %p%%

" Mostra lo stato sulla penultima riga.
set laststatus=2

" }}}

%F – Visualizza il percorso completo del file corrente.

%M – Questo flag mostra se il file non è salvato.

%Y – Tipo di file nel buffer.

%R – Visualizza il flag se il file è di sola lettura.

%b – Mostra il codice  ASCII/Unicode del carattere al cursore.

0x%B – Mostra il codice esadecimale del carattere al cursore.

%l – Mostra il numero di riga.

%c – Mostra il numero di colonna.

%p%% – Mostra la posizione del cursore in percentuale rispetto all'inizio del file.

vim_statusline

Digita help: statusline per maggiori informazioni.

Questo è il file .vim.rc completo.

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""               
"               
"               ██╗   ██╗██╗███╗   ███╗██████╗  ██████╗
"               ██║   ██║██║████╗ ████║██╔══██╗██╔════╝
"               ██║   ██║██║██╔████╔██║██████╔╝██║     
"               ╚██╗ ██╔╝██║██║╚██╔╝██║██╔══██╗██║     
"                ╚████╔╝ ██║██║ ╚═╝ ██║██║  ██║╚██████╗
"                 ╚═══╝  ╚═╝╚═╝     ╚═╝╚═╝  ╚═╝ ╚═════╝
"               
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""               

" Disabilita la compatibilità con vi che può causare problemi inaspettati.
set nocompatible

" Abilita il rilevamento del tipo di file. Vim sarà in grado di aiutarti 
" a rilevare il tipo di file in uso.
filetype on

" Abilita i plugin e carica i plugin per il tipo di file rilevato.
filetype plugin on

" Carica il file di indentazione per il tipo di file rilevato.
filetype indent on

" Abilta l'evidenziazione della sintassi.
syntax on

" Aggiungi i numeri a ciascuna riga nella parte sinistra.
set number

" Evidenzia orizzontalmente la riga dove si trova il cursore.
set cursorline

" Evidenzia verticalmente la riga dove si trova il cursore.
"set cursorcolumn 

" Imposta lo shift a 4 spazi.
set shiftwidth=4

" Imposta il tab a 4 colunne.
set tabstop=4

" Usa gli spazi invece del carattere di tabulazione.
set expandtab

" Non salvare file di backup.
set nobackup

" Non consentire al cursore di spostarsi sopra o sotto N righe durante lo scorrimento.
set scrolloff=10

" Non andare a capo sulle righe. Consenti righe tanto lunghe quanto la massima estensione possibile.
set nowrap

" Durante la ricerca incrementale in un file, evidenzia i caratteri che trovano corrispondenza mentre digiti.
set incsearch

" Ignora le maiuscole durante la ricerca.
set ignorecase

" Ignora l'opzione ignorecase se nella ricerca digiti lettere maiuscole.
" Questo ti consente di cercare specificamente lettere maiuscole.
set smartcase

" Mostra la parte del comando che digiti nell'ultima riga dello schermo.
set showcmd

" Mostra la modalità nella quale ti trovi nell'ultima riga.
set showmode

" Mostra le parole corrispondenti durante una ricerca.
set showmatch

" Usa l'evidenziazione durante una ricerca.
set hlsearch

" Imposta il numero di comandi da salvare nella cronologia (default è 20).
set history=1000

" Abilita il menu di auto completamento quando digiti TAB.
set wildmenu

" Rende il comportamento di wildmenu simile a quello del completamento in Bash.
set wildmode=list:longest

" Ci sono alcuni file che non vogliamo mai editare in Vime.
" Wildmenu ignorerà i file con queste estensioni.
set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx

" PLUGINS ---------------------------------------------------------------- {{{

call plug#begin('~/.vim/plugged')

    Plug 'dense-analysis/ale'

    Plug 'preservim/nerdtree'


call plug#end()

" }}}


" MAPPINGS --------------------------------------------------------------- {{{

" Imposta la barra rovesciata come tasto leader.
let mapleader = '\'

" Digita \\ per tornare all'ultima posizione del cursore.
nnoremap <leader>\ ``

" Digita \p per stampare il file corrente alla stampante predefinta da un sistema operativo Linux.
" Visualizza le stampanti disponibili:   lpstat -v
" Imposta la stampante predefinita:       lpoptions -d <printer_name>
" <silent> significa non visualizzare output.
nnoremap <silent> <leader>p :%w !lp<CR>

" Digita jj per uscire velocemente dalla modalità insert.
inoremap jj <Esc>

" Usa la barra spaziatrice per digitare il carattere : in modalità comandi.
nnoremap <space> :

" Digitando la lettera o verrà aperta una nuova riga sotto quella corrente.
" Esce dalla modalità inserimento dopo aver creato una nuova riga sopra  o sotto quella corrente.
nnoremap o o<esc>
nnoremap O O<esc>

" Centra il cursore verticalmente quando ti sposti alla parola successiva durante una ricerca.
nnoremap n nzz
nnoremap N Nzz

" Copia dal cursore alla fine della riga.
nnoremap Y y$

" Mappa il tasto F5 per eseguire uno script Python all'interno di Vim (su Linux o Mac).
" Qui mappo F5 a una catena di comandi.
" :w salva il file.
" <CR> (carriage return) è come premere ENTER.
" !clear esegue il comando esterno clear screen per pulire lo schermo.
" !python3 % esegue con Python il file corrente.
nnoremap <f5> :w <CR>:!clear <CR>:!python3 % <CR>

" Puoi dividere la finestra in Vim digitando :split (dividi orizzontalmente) o :vsplit (dividi verticalmente).
" Puoi spostarti più facilmente tra le finestre digitando CTRL+j, CTRL+k, CTRL+h, or CTRL+l.
nnoremap <c-j> <c-w>j
nnoremap <c-k> <c-w>k
nnoremap <c-h> <c-w>h
nnoremap <c-l> <c-w>l

" Ridimensiona le finestre usando i tasti freccia digitando:
" CTRL+UP, CTRL+DOWN, CTRL+LEFT, or CTRL+RIGHT.
noremap <c-up> <c-w>+
noremap <c-down> <c-w>-
noremap <c-left> <c-w>>
noremap <c-right> <c-w><

" Mappature specifiche per il plugin NERDTree.
" Mappa il tasto F3 per aprire/chiudere NERDTree.
nnoremap <F3> :NERDTreeToggle<cr>

" Fa ignorare a nerdtree file con certe estensioni e certe directory.
let NERDTreeIgnore=['\.git$', '\.jpg$', '\.mp4$', '\.ogg$', '\.iso$', '\.pdf$', '\.pyc$', '\.odt$', '\.png$', '\.gif$', '\.db$']

" }}}


" VIMSCRIPT -------------------------------------------------------------- {{{

" Consente il metodo di marcatura per la piegatura.
augroup filetype_vim
    autocmd!
    autocmd FileType vim setlocal foldmethod=marker
augroup END

" Se il tipo di file corrente è HTML, imposta l'indentazione a 2 spazi.
autocmd Filetype html setlocal tabstop=2 shiftwidth=2 expandtab

" Se la versione di Vim è maggiore/uguale a 7.3 abilita undofile.
" Questo ti consente di ripristinare le modifiche a un file anche dopo averlo salvato.
if version >= 703
    set undodir=~/.vim/backup
    set undofile
    set undoreload=10000
endif

" Puoi dividere una finestra in sezioni digitando `:split` o `:vsplit`.
" Visualizza la riga e la colonna del cursore solo nella finestra attiva.
augroup cursor_off
    autocmd!
    autocmd WinLeave * set nocursorline nocursorcolumn
    autocmd WinEnter * set cursorline cursorcolumn
augroup END

" Se è in esecuzione una versione GUI di Vim imposta queste opzioni.
if has('gui_running')

    " Imposta la tonalità dello sfondo.
    set background=dark

    " Imposta lo schema di colorazione.
    colorscheme molokai

    " Imposta un font personalizzato che devi avere installato nel tuo computer.
    " Sitassi: set guifont=<font_name>\ <font_weight>\ <size>
    set guifont=Monospace\ Regular\ 12

    " In modalità predefinita visualizza altre informazioni oltre al nome del file.
    " Nascondi la barra degli strumenti.
    set guioptions-=T

    " Nascondi la barra di scorrimento di sinistra.
    set guioptions-=L

    " Nascondi la barra di scorrimento di destra
    set guioptions-=r

    " Nascondi la barra del menu.
    set guioptions-=m

    " Nascondi la barra di scorrimento inferiore.
    set guioptions-=b

    " Mappa il tasto F4 per attivare/disattivare il menu, la barra degli strumenti e la barra di scorrimento.
    " <Bar> è il carattere pipe (|).
    " <CR> è il tasto ENTER.
    nnoremap <F4> :if &guioptions=~#'mTr'<Bar>
        \set guioptions-=mTr<Bar>
        \else<Bar>
        \set guioptions+=mTr<Bar>
        \endif<CR>

endif

" Codice per altri Vimscripts va qui.

" }}}


" STATUS LINE ------------------------------------------------------------ {{{

" Pulisci lo riga di stato quando Vim viene ricaricato.
set statusline=

" Lato sinistro della riga di stato.
set statusline+=\ %F\ %M\ %Y\ %R

" Usa un separatore per dividere la parte destra dalla sinistra.
set statusline+=%=

" Lato destro della riga di stato.
set statusline+=\ ascii:\ %b\ hex:\ 0x%B\ row:\ %l\ col:\ %c\ percent:\ %p%%

" Mostra lo stato sulla penultima riga.
set laststatus=2

" }}}

Conclusione

In questo articolo, ho solo scalfito la superficie su come personalizzare Vim.
Ci sono migliaia di modi per configurare .vimrc a piacimento.
Puoi anche scrivere i tuoi propri plugin e schemi di colorazione e condividerli con il resto della comunità.

Spero che tu abbia imparato qualche nuovo trucco leggendo questo articolo. Quindi se usi Vim, non uscire da casa senza il tuo file .vimrc!

A proposito, ho usato Vim per scrivere questo articolo.

Seguimi su Github | DEV.to