Sto valutando se dovrei ricominciare a utilizzare VIM anziché un IDE. Quali sono le funzionalità più utili di VIM che non sono standard in un IDE?
emacs
invece. ;-)
Sto valutando se dovrei ricominciare a utilizzare VIM anziché un IDE. Quali sono le funzionalità più utili di VIM che non sono standard in un IDE?
emacs
invece. ;-)
Risposte:
Non penso che siano necessariamente le funzionalità avanzate di VIM a renderlo così potente. È il fatto che non devi mai togliere le mani dalla tastiera per fare qualcosa. Trovare qualcosa in un file enorme è semplice come un paio di battiture. Anche l'apertura e la chiusura di più file nella stessa finestra è incredibilmente veloce.
Anche se all'inizio non può sembrare intuitivo, vale la pena dedicare del tempo. Anche se non lo usi come IDE standard (utilizzo generalmente Visual Studio o Eclipse, ad esempio), ti troverai ad usare VIM per aprire e modificare rapidamente i file perché diventa molto più veloce dell'attesa dell'IDE per caricare.
Investi il tempo per imparare a usare bene VIM e non te ne pentirai mai. Direi che è paragonabile all'apprendimento del tipo di tocco.
Per me il :global
comando è un'app killer. Eseguirà comandi vim arbitrari su qualsiasi riga che corrisponda (o non corrisponda) a una regex.
Ecco alcuni esempi:
Il comportamento predefinito è elencare ogni riga corrispondente, quindi:
:g/TODO:/
elencherà ogni riga che contiene il testo "TODO:"
cambia 'Topolino' in 'Minnie' su qualsiasi riga che contenga anche la parola 'Mouse'
:g/Mouse/ s/Mickey/Minnie/
I comandi possono avere un proprio intervallo, quindi questo eliminerà da ogni riga con "TODO:" alla successiva riga vuota:
: g / TODO: /., / ^ $ / d
Usa: g! eseguire su ogni riga che NON corrisponde al regex, ad esempio per sostituire "emacs" con "vim" tranne che per le righe che contengono la parola "sucks":
:g!/sucks/ s/emacs/vim/
Trovo incredibilmente utile la possibilità di eliminare tutto tra una serie di simboli associati. Ad esempio, abbastanza spesso, mi ritroverò a voler sostituire una stringa nel codice. Quindi, di"
mentre il cursore si trova nel blocco eliminerà la stringa, mantenendo ""
intatto, e posizionerà il cursore tra i due caratteri di virgoletta. da"
fa la stessa cosa, ma elimina anche i caratteri di citazione.
ci"
elimina e mette il cursore in modalità inserimento in modo da poter iniziare immediatamente a scrivere.
"Completamento parola chiave modalità di inserimento". Ctrl-P e Ctrl-N in modalità inserimento per cercare nel testo per provare a completare il nome della variabile che si sta digitando. Non l'ho mai visto in nessun altro IDE e mi manca davvero. Il completamento del codice negli IDE non è lo stesso.
^X^O
omni-completa in modalità inserimento, se è stata abilitata. Ma hai ragione, mi trovo a utilizzare il completamento delle parole chiave molto più che omni-complete.
Un'altra caratteristica che trovo incredibilmente utile è la possibilità di modificare il rientro. :15,30>>
fa rientrare tutte le righe da 15-30 (incluso) due volte, mentre :15,30<<
disindenta due volte le stesse righe.
=
di essere altrettanto utile, se non di più, di <<
e >>
.
il comando dd (elimina la riga corrente). Lo uso così tanto.
Inoltre, essere in grado di digitare qualcosa come 3dd ed eliminare le 3 righe successive è meraviglioso. Non l'ho mai visto in un altro editor = D
Il .
comando. Ripete l'ultimo comando.
Esc ! }
sposterà il paragrafo corrente su un filtro della riga di comando come fmt
o wc
o which
e restituirà i risultati all'editor.
Accesso rapido alla riga di comando. CTRL + Z o: wqa mi porterà una riga di comando in meno di 1 secondo senza che la mia mano lasci la tastiera.
:!/bin/bash
. Uso :!
abbastanza frequentemente.
:sh
È piuttosto difficile rispondere, a causa in qualche modo della vaghezza della domanda e in parte del fatto che gli IDE differiscono e molti forniscono funzionalità che altri non hanno (e il fatto che ne ho solo alcuni).
Tuttavia, ciò che credo distingue Vim dagli altri editor (sì, anche Emacs, su questo) è che è davvero un grande editor . Con il passare del tempo, ho usato molti editor e posso dire onestamente che pochissimi hanno un set così completo di funzionalità per manipolare il testo, come fa Vim.
Il mio stile di manipolazione del testo, ad esempio, include molto spesso l'uso della duplicazione (riga / selezione di più righe) e lo spostamento (riga / selezione di più righe) su e giù, per cui ho definito da tempo scorciatoie rapide. Mi mancano quelle funzionalità nella maggior parte degli IDE (anche se ho sentito che ReSharper per VS ha qualcosa di simile).
Sapevi che esiste un plug-in vi per eclipse ? Il costo è di 15 euro (20ish US $), ma è così vale la pena. Non più dd
nel mezzo di un documento e manca tutte le piccole cose utili.
Forse un po 'fuori tema ma ho pensato che valesse la pena sottolineare.
A seconda del linguaggio che stai programmando, mantieni l'ideo o ottieni l'ide che offre il maggior numero di refactoring che puoi trovare, ottieni un aiuto per Visual Studio se stai facendo c #, intellij per Java o Visual Assist per Visual Studio, massimizzare i refactoring in eclissi o netbeans.
Dovremmo passare dalla manipolazione del testo alla manipolazione del codice, gli strumenti di refactoring ti offrono questa capacità. Se vim ti offre tutte le funzionalità, io per primo non voglio più occuparmi di un editor di testo
La maggior parte degli IDE non consente di dividere lo schermo. Adoro quella funzione in VIM.
<C-w>