vim
Manipolazione del testo
Ricerca…
Osservazioni
Per incrementare e decrementare le cose come 11:59AM
, 3rd
e XVIII
, usare il plugin vim-speed date
Conversione di casi di testo
In modalità normale:
-
~
inverte il caso del carattere sotto il cursore, -
gu{motion}
minuscolo il testo trattato da{motion}
, -
gU{motion}
il testo trattato da{motion}
Esempio ( ^
indica la posizione del cursore):
Lorem ipsum dolor sit amet.
^
Lorem ipSum dolor sit amet. ~
Lorem IPSUM DOLOR sit amet. gU2w
Lorem IPsum DOLOR sit amet. gue
In modalità visiva:
-
~
inverte il caso del testo selezionato, -
u
minuscolo il testo selezionato, -
U
uppercases il testo selezionato
Esempio ( ^^^
contrassegna la selezione visiva):
Lorem ipsum dolor sit amet.
^^^^^^^^^^^^^
Lorem ipSUM DOLOR SIT amet. ~
Lorem ipSUM DOLOR SIT amet. U
Lorem ipsum dolor sit amet. u
Numeri incrementali e decrementali e caratteri alfabetici
In modalità normale, possiamo incrementare il numero più vicino sulla linea in corrispondenza o dopo il cursore con <Ca>
e decrementarlo con <Cx>
. Negli esempi seguenti, la posizione del cursore è indicata da ^
.
Numeri incrementali e decrescenti
for i in range(11):
^
<Cx>
decrementa il numero:
for i in range(10):
^
10<Ca>
incrementa di 10
:
for i in range(20):
^
Incrementare e decrementare i caratteri alfabetici
Per fare in modo che incrementi e decrementi funzionino anche con le lettere, usa il comando ex :set nrformats+=alpha
o aggiungi set nrformats+=alpha
al tuo .vimrc
.
Esempio di incremento:
AAD
^
<Ca>
incrementa in B
:
ABD
^
Esempio di decremento:
ABD
^
<Cx>
decrementi da D
a C
:
ABC
^
Numeri di incremento e decremento quando è abilitato l'incremento / decremento alfabetico
Si noti che abilitare l'incremento / decremento per lavorare con caratteri alfabetici significa che bisogna stare attenti a non modificarli quando si desidera semplicemente modificare i numeri. Puoi disattivare l'incremento / decremento alfabetico usando il comando ex :set nrformats-=alpha
o puoi semplicemente esserne consapevole e assicurarti di passare al numero prima di incrementare o decrementare. Ecco " for i in range(11):
" esempio da sopra rifatto per funzionare mentre è impostato l'incremento / decremento alfabetico:
Diciamo che vuoi diminuire da 11
a 10
e l'incremento / decremento alfabetico è attivo.
for i in range(11):
^
Poiché alfabetico incremento / decremento è attivo, per evitare di modificare il carattere sotto il cursore, prima spostarsi in avanti alla prima 1
utilizzando i normali comandi di movimento modalità f1
(cioè minuscole f
seguita dal numero 1
, non deve essere confuso con un tasto funzione ):
for i in range(11):
^
Ora, dato che il cursore è sul numero, puoi decrementarlo con <Cx>
. Al decremento, il cursore viene riposizionato sull'ultima cifra del numero:
for i in range(10):
^
Codice di formattazione
In modalità normale:
gg
vai in cima
=
poi G
Utilizzo di "verbi" e "nomi" per la modifica del testo
Uno dei modi per pensare ai comandi che dovrebbero essere eseguiti, per modificare un testo in un certo modo, è come frasi intere.
Un comando è un'azione eseguita su un oggetto. Quindi ha un verbo:
:normal i " insert
:normal a " append
:normal c " overwrite
:normal y " yank (copy)
:normal d " delete
Alcune di queste parole funzionano con un oggetto come d
, c
, y
. Tali oggetti possono essere parola, linea, frase, paragrafo, tag . Si possono usare questi in combinazione:
:normal dw " deletes the text from the position of the cursor to the end of the next word
:normal cw " deletes the text from the cursor to the end of the next word and
" enters insert mode
Inoltre si potrebbe usare un modificatore per specificare con precisione dove deve essere eseguita l'azione:
:normal diw " delete inside word. I.e. delete the word in which is the cursor.
:normal ciw " removes the word, the cursor points at and enters insert mode
:normal ci" " removes everything between the opening and closing quotes and
" enters insert mode
:normal cap " change the current paragraph
:normal ct8 " remove everything until the next number 8 and enter insert mode
:normal cf8 " like above but remove also the number
:normal c/goal " remove everything until the word 'goal' and enter insert mode
:normal ci{ " change everything inside the curly braces
Altre risorse:
Impara a parlare vim: verbi, nomi e modificatori!
Learning Vim nel 2014: Vim come lingua
Modifica di VimSpeak usando Speech Grammar