Si noti che non utilizzo Visual Studio e conosco poco le funzioni disponibili al suo interno. Di seguito sono riportati alcuni esempi di ciò che trovo utile in Vim, non un elenco di funzionalità mancanti in Visual Studio.
Macro
E 'facile creare macro per operazioni complesse (ma ripetitivi). Per illustrare con un semplice esempio, diciamo che si parte con:
Line1
Line2
Line3
Line4
Line5
Ora vogliamo avvolgere ogni linea in una dichiarazione print("");
.
Posizionare il cursore sulla prima riga, e immettere:
qx
per avviare la registrazione di una macro al registro x
- Maiusc + ho
print("
Esc per inserire il testo in l'inizio della riga
- Shift + Un
");
Esc per aggiungere testo alla fine della riga
j
per andare verso il basso di una riga
q
per interrompere la registrazione della macro
[email protected]
a eseguire la macro nel registro x
4 volte
Vedere :help complex-repeat
per ulteriori informazioni sui macro Vim. Oggetti
Testo
Si noti che questo è uno dei miglioramenti Vim ha rispetto alla tradizionale Vi. Se non funziona, probabilmente stai correndo in modalità di compatibilità Vi; utilizzare :set nocompatible
per abilitare la piena funzionalità di Vim.
Gli oggetti di testo consentono di selezionare facilmente le regioni di testo. Diciamo che si parte con il seguente testo, e posizionare il cursore sulla del testo:
<b><i>some text</i></b>
Ora vogliamo eliminare tutto tra <i>
e </i>
. Questo può essere fatto semplicemente digitando il comando dit
(d 'elete i' nner t 'ag)! O se vogliamo includere gli stessi tag della nostra selezione, utilizzare dat
(d 'elete un t' ag). Per cancellare tutto dentro le <b>
tag, utilizzare d2it
(d 'elete due i' NNER t 'AGS).
È possibile utilizzare in modo simile daw
(cancellare una parola), dap
(eliminare un paragrafo), di"
(eliminare all'interno virgolette doppie), ecc; vedi :help text-objects
per l'elenco completo.
altro esempio utile di oggetti di testo:
v2ap"+y
v
alterna modo visivo. Questo rende più facile vedere cosa stai selezionando e ti consente di regolare la selezione con una serie di più movimenti prima di eseguire un comando.
2ap
seleziona questo paragrafo e il successivo
"+
seleziona clipboard sistema registro per la successiva operazione
y
yankee la selezione alla proposta registro
In altre parole, il comando sarebbe copiare due paragrafi dal tuo testo negli appunti di sistema (ad esempio per incollarli qui su StackOverflow).
Modifica globale
Il comando global
è usato per applicare un comando Ex a tutte le linee corrispondenti a una data espressione regolare. Esempi:
:global/test/print
o :g/test/p
sarebbe stampare tutte le linee che contengono la frase prova
:global/test/delete
o :g/test/d
cancellerebbe dette linee
:global/test/substitute/^/#/
o :g/test/s/^/#/
sarebbe cercare linee che contengono la frase prova, e commentare eliminarli sostituendo l'ancoraggio regexp ^
(inizio riga) con il simbolo #
.
Si può anche fare un po 'di roba fresca facendo passare i movimenti di ricerca /pattern
o ?pattern
come intervalli:
:?test?move .
ricerca all'indietro per una linea contenente prova, e lo sposta alla posizione corrente nel presentare
:/test/copy .
ricerca in avanti per una riga contenente prova, e lo copia alla posizione corrente nel file
Buona fortuna e buon divertimento imparando Vim!
obbligatorio http://imgs.xkcd.com/comics/real_programmers.png –
@brad DAMNIT EMACS !!! – Incognito
Solo per essere snarky ... Ho sempre perso l'x-mouse su Windows ... anche un Ctrl-clic è troppo movimento per quella funzionalità. – Zoe