VimCS: Configurazione: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
mNessun oggetto della modifica
 
(5 versioni intermedie di 2 utenti non mostrate)
Riga 1: Riga 1:
{{Template:VimCS}}
{{Template:VimCS}}
= Configurazione =
__TOC__
Personalmente utilizzo una statusbar ben configurata, ma a qualcuno piace avere i numeri delle
Personalmente utilizzo una statusbar ben configurata, ma a qualcuno piace avere i numeri delle righe alla sinistra del testo: <br/>
righe alla sinistra del testo: <br/>
visualizza numeri riga - ''':set number''' <br/>
visualizza numeri riga - ''':set number''' <br/>
rimuove visualizzazione - ''':set nonumber'''
rimuove visualizzazione - ''':set nonumber'''


C'è anche chi vuole il mouse, ho le convulsioni al solo pensiero :) <br/>
C'è anche chi vuole il mouse. <br/>
abilita uso del mouse - ''':set mouse=a''' <br/>
abilita uso del mouse - ''':set mouse=a''' <br/>
disabilita - ''':set mouse='''
disabilita - ''':set mouse='''


L'unica vera comodità che trovo è nel poter ridimensionare facilmente le finestre ma di contro ha che il cursore viene spostato quando si clicca in un punto dello schermo, ed è un comportamento che detesto.


== .vimrc ==
== .vimrc ==
Il file di configurazione è una cosa molto personale, citando vimgor, il bot del canale IRC: <br/>
Il file di configurazione è una cosa molto personale, citando vimgor: <br/>
<skizzhg> vimgor, :kill_kittens <br/>
<skizzhg> vimgor, :kill_kittens <br/>
<vimgor> The Command that Cannot Be Named. :kill_kittens is what will happen if you use someone
<vimgor> The Command that Cannot Be Named. :kill_kittens is what will happen if you use someone else's vimrc.
else's vimrc.


Voglio però riportare alcuni stralci del mio, in particolare: <br/>
Voglio però riportare alcuni stralci del mio, in particolare: <br/>
Riga 26: Riga 25:




* la visualizzazione dei comandi parziali, se stiamo per digitare ZZ per chiudere Vim, verrà
* la visualizzazione dei comandi parziali, se stiamo per digitare ''ZZ'' per chiudere Vim, verrà mostrata la prima ''Z'', in caso ci fossimo sbagliati basterà usare ''Esc''
mostrata la prima Z, in caso ci fossimo sbagliati basterà usare Esc


'''set showcmd'''
'''set showcmd'''




* la gestione dei buffer, ci sono vari script più o meno comodi o invasivi, ho preferito creare delle semplici scorciatoie
* la gestione dei buffer, ci sono vari plugin più o meno comodi o invasivi, ho preferito creare delle semplici scorciatoie. Questo è indispensabile per muoversi tra uno e l'altro senza doverlo prima salvare
 
questo è indispensabile per muoversi tra uno e l'altro senza doverlo prima salvare


'''set hidden'''
'''set hidden'''
Riga 44: Riga 40:
* b: passa al precedente
* b: passa al precedente
* f: passa al successivo
* f: passa al successivo
* g: alterna tra l'attuale e il precedente, stesso comportamento di ctrl-^
* g: alterna tra l'attuale e il precedente, stesso comportamento di Ctrl-^
* D: rimuove un buffer dalla lista
* D: rimuove un buffer dalla lista
* numeri: passaggio dal buffer 1 al 10
* numeri: passaggio dal buffer 1 al 10


'''nnoremap <Leader>L :buffers<cr>:buffer<space> <br/>
'''nnoremap <Leader>L :ls<CR>:buffer<Space> <br/>
'''nnoremap <Leader>l :ls<cr>''' <br/>
'''nnoremap <Leader>l :ls<CR>''' <br/>
'''nnoremap <Leader>b :bp<cr>''' <br/>
'''nnoremap <Leader>b :bp<CR>''' <br/>
'''nnoremap <Leader>f :bn<cr>''' <br/>
'''nnoremap <Leader>f :bn<CR>''' <br/>
'''nnoremap <Leader>g :e#<cr>''' <br/>
'''nnoremap <Leader>g :e#<CR>''' <br/>
'''nnoremap <Leader>D :bd<cr>''' <br/>
'''nnoremap <Leader>D :bd<CR>''' <br/>
'''nnoremap <Leader>1 :1b<cr>''' <br/>
'''nnoremap <Leader>1 :1b<CR>''' <br/>
'''nnoremap <Leader>2 :2b<cr>''' <br/>
'''nnoremap <Leader>2 :2b<CR>''' <br/>
'''nnoremap <Leader>3 :3b<cr>''' <br/>
'''nnoremap <Leader>3 :3b<CR>''' <br/>
'''nnoremap <Leader>4 :4b<cr>''' <br/>
'''nnoremap <Leader>4 :4b<CR>''' <br/>
'''nnoremap <Leader>5 :5b<cr>''' <br/>
'''nnoremap <Leader>5 :5b<CR>''' <br/>
'''nnoremap <Leader>6 :6b<cr>''' <br/>
'''nnoremap <Leader>6 :6b<CR>''' <br/>
'''nnoremap <Leader>7 :7b<cr>''' <br/>
'''nnoremap <Leader>7 :7b<CR>''' <br/>
'''nnoremap <Leader>8 :8b<cr>''' <br/>
'''nnoremap <Leader>8 :8b<CR>''' <br/>
'''nnoremap <Leader>9 :9b<cr>''' <br/>
'''nnoremap <Leader>9 :9b<CR>''' <br/>
'''nnoremap <Leader>0 :10b<cr>'''
'''nnoremap <Leader>0 :10b<CR>'''




* per la creazione di file html usa la formattazione per mezzo di regole css al posto
* per la creazione di file HTML non include i numeri delle righe, se impostati, e usa la formattazione per mezzo di regole css al posto dei tag e attributi di formattazione pesanti e ormai deprecati <br/>
dei tag e attributi di formattazione pesanti e ormai deprecati <br/>
'''let html_number_lines=0''' <br/>
'''let html_number_lines=0''' <br/>
'''let html_use_css=1'''
'''let html_use_css=1'''


* per inserire un cancelletto a inizio riga:<br/>
'''nmap à ^i#<ESC>'''<br/>
'''vmap à <C-V>^I#<ESC>'''<br/>
ora, premendo '''à''', è possibile aggiungere un '#' all'inizio di una singola riga (modalità normale) o all'inizio di più righe (dopo averle selezionate in modalità visuale).


== .vim/ ==
== .vim/ ==
Normalmente il file di configurazione e quello della cronologia risiedono nella home, mentre tutti gli eventuali plugin e documentazione, schema colori e altro vanno nella directory <code>.vim/</code> con una struttura simile a <code>/usr/share/vim/vim72/</code>. <br/>
Normalmente il file di configurazione e quello della cronologia risiedono nella home, mentre tutti gli eventuali plugin e documentazione, schema colori e altro vanno nella directory <code>.vim/</code> con una struttura simile a <code>/usr/share/vim/vimcurrent/</code>. <br/>
Per coerenza e ordine si farà in modo che i file <code>.viminfo</code> e <code>.vimrc</code> vengano spostati nella directory <code>.vim/</code> insieme a tutto il resto.
Per coerenza e ordine si farà in modo che i file <code>.viminfo</code> e <code>.vimrc</code> vengano spostati nella directory <code>.vim/</code> insieme a tutto il resto.


Per <code>.viminfo</code>, aggiungere la seguente riga in <code>.vimrc</code>:
Per <code>.viminfo</code>, aggiungere la seguente riga in <code>.vimrc</code>:
set viminfo='55,<55,s11,:99,h,n~/.vim/viminfo
<pre>set viminfo='55,<55,s11,:99,h,n~/.vim/viminfo</pre>




I parametri con le relative spiegazioni si trovano nell'help: <br/>
I parametri con le relative spiegazioni si trovano nell'help: <br/>
'''<nowiki>:</nowiki>h 'viminfo''''
'''<nowiki>:</nowiki>help 'viminfo''''


Per .vimrc inserire la seguente variabile in bash_profile (o .profile):
Per .vimrc inserire la seguente variabile in bash_profile (o .profile):
export VIMINIT="source $HOME/.vim/vimrc"
<pre>export VIMINIT="source $HOME/.vim/vimrc"</pre>


Per ulteriori informazioni si veda: <br/>
Per ulteriori informazioni vedere: <br/>
'''<nowiki>:</nowiki>h VIMINIT'''
'''<nowiki>:</nowiki>help VIMINIT'''




== Gerarchia della directory <code>.vim/</code> ==
== Gerarchia della directory <code>.vim/</code> ==
<code>.vim/colors</code>: dove risiedono gli eventuali schemi colori aggiunti.
<code>.vim/colors</code>: dove risiedono gli eventuali schemi colore aggiunti.


Visualizza lo schema in uso - ''':colorscheme'''
Visualizza lo schema in uso - ''':colorscheme'''
Riga 101: Riga 100:
'''<nowiki>:</nowiki>helptags <code>.vim/doc/</code>'''
'''<nowiki>:</nowiki>helptags <code>.vim/doc/</code>'''


Per ulteriori informazioni si veda: <br/>
Per ulteriori informazioni vedere: <br/>
'''<nowiki>:</nowiki>h :helptags'''
'''<nowiki>:</nowiki>help :helptags'''




<code>.vim/plugin</code>: i plugin aggiunti
<code>.vim/plugin</code>: i plugin aggiunti


Per ulteriori informazioni si veda: <br/>
Per ulteriori informazioni vedere: <br/>
'''<nowiki>:</nowiki>h plugin'''
'''<nowiki>:</nowiki>help plugin'''


Visualizza tutti i plugin, temi e altro caricati - ''':scriptnames'''
Visualizza tutti i plugin, temi e altro caricati - ''':scriptnames'''




<code>.vim/ftdetect</code>: dove ho inserito il menu di gvim, che è ampiamente customizzabile, per evitare che gli aggiornamenti sovrascrivano l'originale in <code>$VIMRUNTIME/menu.vim</code>; in realtà ftdetect servirebbe per la sintassi dei tipi di file ma pare l'unico modo per farglielo vedere.
<code>.vim/ftdetect</code>: dove ho inserito il menu di gvim, che è ampiamente customizzabile, per evitare che gli aggiornamenti sovrascrivano l'originale in <code>$VIMRUNTIME/menu.vim</code>; in realtà <code>ftdetect</code> servirebbe per la sintassi dei tipi di file ma pare l'unico modo per farglielo vedere.


Per ulteriori informazioni si veda: <br/>
Per ulteriori informazioni vedere: <br/>
'''<nowiki>:</nowiki>echo $VIMRUNTIME'''
'''<nowiki>:</nowiki>echo $VIMRUNTIME''' <br/>
'''<nowiki>:</nowiki>h ftdetect'''
'''<nowiki>:</nowiki>help ftdetect''' <br/>
'''<nowiki>:</nowiki>h menu.vim'''
'''<nowiki>:</nowiki>help menu.vim'''




<code>lessvim</code>: lo script che utilizza vim in modalità less e richiama <code>$VIMRUNTIME/macros/less.vim</code>. <br/>
<code>lessvim</code>: lo script che utilizza vim in modalità less e richiama <code>$VIMRUNTIME/macros/less.vim</code>. <br/>
Lo tengo in home per via di una lieve modifica (opzione -n) che evita di aprire un file <code>.swp</code> e mantenere quindi il file impegnato, un alias bash fa il resto: <br/>
Tengo entrambi i file in home per via di alcune modifiche, un [[alias]] [[Bash]] fa il resto: <br/>
alias less='$HOME/.vim/lessvim'
<pre>alias less='$HOME/.vim/lessvim'</pre>


Lo scopo è avere <code>less</code> con gli stessi vantaggi di Vim, sebbene in certe occasioni non funzioni a dovere, una volta dentro premere il tasto '''h''' per l'help.
Lo scopo è avere <code>less</code> con gli stessi vantaggi di Vim, sebbene in certe occasioni non funzioni a dovere, una volta dentro premere il tasto '''h''' per l'help.


La panoramica è ovviamente parziale e riguarda le mie modeste esigenze.
La panoramica è ovviamente parziale e riguarda le mie modeste esigenze.
[[Categoria: Elaborazione_testi]]

Versione attuale delle 19:11, 12 apr 2013

Vim Cheat Sheet

Sommario

  1. Introduzione
  2. Le basi
  3. Gestione dei file
  4. Editing
  5. Varie
  6. Configurazione
  7. Extra

Personalmente utilizzo una statusbar ben configurata, ma a qualcuno piace avere i numeri delle righe alla sinistra del testo:
visualizza numeri riga - :set number
rimuove visualizzazione - :set nonumber

C'è anche chi vuole il mouse.
abilita uso del mouse - :set mouse=a
disabilita - :set mouse=

L'unica vera comodità che trovo è nel poter ridimensionare facilmente le finestre ma di contro ha che il cursore viene spostato quando si clicca in un punto dello schermo, ed è un comportamento che detesto.

.vimrc

Il file di configurazione è una cosa molto personale, citando vimgor:
<skizzhg> vimgor, :kill_kittens
<vimgor> The Command that Cannot Be Named. :kill_kittens is what will happen if you use someone else's vimrc.

Voglio però riportare alcuni stralci del mio, in particolare:

  • la statusbar che fornisce molte informazioni sul documento

set laststatus=2
set statusline=(%n)\ %F\ [%{strlen(&fenc)?&fenc:'none'},%{&ff}]%h%m%r%y%=%c,%l/%L\ %P

(fonte: Vim statusline)


  • la visualizzazione dei comandi parziali, se stiamo per digitare ZZ per chiudere Vim, verrà mostrata la prima Z, in caso ci fossimo sbagliati basterà usare Esc

set showcmd


  • la gestione dei buffer, ci sono vari plugin più o meno comodi o invasivi, ho preferito creare delle semplici scorciatoie. Questo è indispensabile per muoversi tra uno e l'altro senza doverlo prima salvare

set hidden


la mappatura dei tasti, <Leader> è il backslash

  • L: elenca i buffer aperti e aspetta un numero per selezionarne uno
  • l: li elenca soltanto
  • b: passa al precedente
  • f: passa al successivo
  • g: alterna tra l'attuale e il precedente, stesso comportamento di Ctrl-^
  • D: rimuove un buffer dalla lista
  • numeri: passaggio dal buffer 1 al 10

nnoremap <Leader>L :ls<CR>:buffer<Space>
nnoremap <Leader>l :ls<CR>
nnoremap <Leader>b :bp<CR>
nnoremap <Leader>f :bn<CR>
nnoremap <Leader>g :e#<CR>
nnoremap <Leader>D :bd<CR>
nnoremap <Leader>1 :1b<CR>
nnoremap <Leader>2 :2b<CR>
nnoremap <Leader>3 :3b<CR>
nnoremap <Leader>4 :4b<CR>
nnoremap <Leader>5 :5b<CR>
nnoremap <Leader>6 :6b<CR>
nnoremap <Leader>7 :7b<CR>
nnoremap <Leader>8 :8b<CR>
nnoremap <Leader>9 :9b<CR>
nnoremap <Leader>0 :10b<CR>


  • per la creazione di file HTML non include i numeri delle righe, se impostati, e usa la formattazione per mezzo di regole css al posto dei tag e attributi di formattazione pesanti e ormai deprecati

let html_number_lines=0
let html_use_css=1

  • per inserire un cancelletto a inizio riga:

nmap à ^i#<ESC>
vmap à <C-V>^I#<ESC>
ora, premendo à, è possibile aggiungere un '#' all'inizio di una singola riga (modalità normale) o all'inizio di più righe (dopo averle selezionate in modalità visuale).

.vim/

Normalmente il file di configurazione e quello della cronologia risiedono nella home, mentre tutti gli eventuali plugin e documentazione, schema colori e altro vanno nella directory .vim/ con una struttura simile a /usr/share/vim/vimcurrent/.
Per coerenza e ordine si farà in modo che i file .viminfo e .vimrc vengano spostati nella directory .vim/ insieme a tutto il resto.

Per .viminfo, aggiungere la seguente riga in .vimrc:

set viminfo='55,<55,s11,:99,h,n~/.vim/viminfo


I parametri con le relative spiegazioni si trovano nell'help:
:help 'viminfo'

Per .vimrc inserire la seguente variabile in bash_profile (o .profile):

export VIMINIT="source $HOME/.vim/vimrc"

Per ulteriori informazioni vedere:
:help VIMINIT


Gerarchia della directory .vim/

.vim/colors: dove risiedono gli eventuali schemi colore aggiunti.

Visualizza lo schema in uso - :colorscheme


.vim/doc: la documentazione dei plugin.

Per far sì che Vim riconosca i cambiamenti, usare il comando:
:helptags .vim/doc/

Per ulteriori informazioni vedere:
:help :helptags


.vim/plugin: i plugin aggiunti

Per ulteriori informazioni vedere:
:help plugin

Visualizza tutti i plugin, temi e altro caricati - :scriptnames


.vim/ftdetect: dove ho inserito il menu di gvim, che è ampiamente customizzabile, per evitare che gli aggiornamenti sovrascrivano l'originale in $VIMRUNTIME/menu.vim; in realtà ftdetect servirebbe per la sintassi dei tipi di file ma pare l'unico modo per farglielo vedere.

Per ulteriori informazioni vedere:
:echo $VIMRUNTIME
:help ftdetect
:help menu.vim


lessvim: lo script che utilizza vim in modalità less e richiama $VIMRUNTIME/macros/less.vim.
Tengo entrambi i file in home per via di alcune modifiche, un alias Bash fa il resto:

alias less='$HOME/.vim/lessvim'

Lo scopo è avere less con gli stessi vantaggi di Vim, sebbene in certe occasioni non funzioni a dovere, una volta dentro premere il tasto h per l'help.

La panoramica è ovviamente parziale e riguarda le mie modeste esigenze.