# (G)VIM appunti a spruzzo

Propedeutico per il camelcase da campo DB. Trasforma gli “_” seguiti da lettra minuscola in lettera maiuscola dopo l’underscore:
    :s/_\([a-z]\)/\U\1/g  

Camelcase
http://vim.wikia.com/wiki/Converting_variables_to_or_from_camel_case
Prima tutto in undercase von “V~” sulla linea 
poi
    :s/_\(\w\)/\U\1/g


iIl viceversa da campo java a campo DB eseguire prima l’inserimento degli underscores
    :s/\([A-Z]\)/_\1/g

Poi l’uppercase di tutto:
    :s/\(.*\)/\U\1/g


Usare i numeri di riga nelle espressioni:

    :%s/###/\=line(".")/g 

## Correzione ortografica 
Orginale qui: 
    <https://robots.thoughtbot.com/vim-spell-checking>
o qui:
    <http://vimdoc.sourceforge.net/htmldoc/spell.html#spell-quickstart>



per attivare
   :setlocal spell

per attivare specificando un dizionario
   :setlocal spell spelllang=en_us

A questo punto potrebbe venir notificato che il file di vocabolario .spl non è
presente, dovrebbe scaricarlo automaticamente altrimenti va scaricato
manualmente da qui:

    <http://ftp.vim.org/pub/vim/runtime/spell/>

salvato sotto la cartella "spell" di ".vim"

Per abilitare lo spellchacking automaticmanete su tutti i file  md (per esempio) in .muttrc [DA TESTARE:]:
    autocmd BufRead,BufNewFile *.md setlocal spell


Per cambiare i colori con cui vengono evidenziati gli errori
    hi SpellBad ctermfg=015 ctermbg=000 cterm=none guifg=#FFFFFF guibg=#000000 gui=none
dentro gui è possibile specificare delle stilizzazioni tipo underline, bold

Se si volesse saltare da errore a errore evidenziato ( <http://vimdoc.sourceforge.net/htmldoc/spell.html#spell-quickstart> ):
next: "**]s**" e previous "**[s**" con "**z=**" ottengo i suggerimenti di
correzione da parte del vocabolario impostato con i comandi sopra


## Beautyfiers
Per xml, installare xmllint (libxml2-utils) ed eseguite *dopo aver selezionato il testo da formattare*:
    !xmllint --format -
Se selezionato il testo la riga di comando inizia con “'<,'>” tali caratteri vanno mantenuti e il comano xmllint va accosato a quanto riporta la riga di comando. Conseguentemente l’esecuzione in versione finale del comando:
    '<,'> !xmllint --format -

per json (da verificare):
    :%!python -m json.tool

## Wrapping
Eisgenza iniziale era, in fase di stsura di documenti Markdown, di wrappare le
righe dopo *n* caratteri (tipicamente 80).
Per abilitare la funzione automagicamente:
    :set textwidth=80 
Per riformattare il testo già scritto:
"**gq**" dopo aver selezionato il testo da riformattare




