Quali funzionalità di Vim utilizzate? [chiuso]


13

Passo quasi tutto il giorno a programmare in Vim e sono sicuro che anche molti di voi lo faranno. Quali funzionalità usi per migliorare ulteriormente la tua codifica quotidiana? Uno che uso è gv , che ti permetterà di riselezionare il testo precedentemente selezionato. È ottimo per rientrare!


1
Per scopi storici, ecco un link alla domanda SO originale: stackoverflow.com/questions/95072/…
Jax

Nota il mio commento qui sotto e non dovrai nemmeno digitare gv. :)
Nathan Long

Risposte:


9

:% s / x / y / g

Questo comando sostituisce tutte le istanze di x nel file corrente con y . Questo è fondamentalmente solo una ricerca e sostituzione, ma lo uso così spesso da quando l'ho imparato al lavoro che è diventato prezioso.

Inoltre, / cerca la stringa

quindi n per navigare attraverso tutte le istanze della stringa di ricerca all'interno del file. Ottimo per apportare modifiche manuali molto più facilmente, soprattutto se non è possibile applicare una regola all'intero file.


In realtà sto lavorando per convertire una vasta sezione della nostra base di codice al lavoro e lo sto facendo interamente con espressioni regolari vim (finora). Funziona davvero bene!
Ha ricevuto Schmidt il

Aggiungi 'c' alla fine per rendere interattivo il comando. ad esempio:% s / x / y / gc
sml

1
Nota che %è dove fare la sostituzione - %significa "il file corrente". Se si evidenziano visivamente alcune linee e si digita :s, è possibile effettuare una sostituzione proprio in quella selezione.
Nathan Long

7

== fa un buon rientro automatico sulla riga corrente.

Normalmente, però, lo uso =con un movimento, come =Gindentare alla fine del file o =i}rientrare all'interno dell'attuale set di parentesi graffe.


2
Inoltre, tieni a mente >> e << che possono eseguire manualmente (un) rientro.
Ha ricevuto Schmidt il

@Frew - yep. Inoltre, se si aggiunge vmap <Tab> >gve vmap <S-Tab> <gval proprio .vimrc, è possibile rientrare e non rientrare con Tab e Maiusc-Tab, rispettivamente, E tornerà alla modalità di selezione visiva in modo da poter rientrare o meno.
Nathan Long,

6

=% per il rientro automatico di tutto all'interno di un blocco di codice.


Oooh! Questo è nuovo per me!
Frew Schmidt,

Funziona se il cursore si trova all'inizio {. Se sei all'interno del blocco, puoi farlo =i{, per "rientro tra parentesi graffe".
Nathan Long,

5

Utilizzare *in modalità comando per cercare la parola sotto il cursore.


1
E non dimenticare che è il comando sorella, #, che fa la stessa cosa ma va indietro invece che in avanti!
Ha ricevuto Schmidt il

5

Il :!comando - prezioso per lsing, e il trucco "sudo tee".

Mi è stato chiesto di spiegare il trucco del tee. Fondamentalmente, ti consente di salvare un file di testo con i privilegi di amministratore, anche se non hai avviato VIM come root:

:w !sudo tee %

Potresti voler spiegare il trucco "sudo tee" qui :-) Inoltre mi piace fare:! Ordinare dopo aver evidenziato le definizioni delle variabili e quant'altro.
Ha ricevuto Schmidt il

Puoi davvero trasformare Vim in un fantastico editor "programmabile" usando:! e alcuni script shell / Python / Perl / altri.
Jonas,

In realtà ho un'alternativa a !ls, che esegue un vnew, output r!lsnel nuovo buffer e lo riduce in senso orizzontale. Non riesco a preoccuparmi di ricordare tutti i file in una directory con più di tre
;;

4
.

Colpire il. tasto ripete il comando precedente. Adorabile per, diciamo, modificarne una .inio così.


questo è sorprendentemente potente, ma ci vuole un po 'di tempo prima che tu possa davvero farcela.
Aaron,


2

Uso sempre gq per ripetere le interruzioni di riga su e-mail, file di testo, ecc. Molto utile quando rispondo a e-mail (uso pino) e modifico più risposte precedenti.


Oooh, me ne ero completamente dimenticato!
Ha ricevuto Schmidt il

Perché, oh perché, i client di posta elettronica più popolari non possono supportare funzionalità simili?
Erichui,

Recentemente sto usando gw invece di gq perché mantiene la posizione del cursore
SergioAraujo,

2

Da dove cominciare ... Ecco le cose che posso ricordare che ho usato negli ultimi 5 minuti circa.

  • NERD Tree - Esplorazione di file. Rende VIM più simile a un IDE.
    • Una cosa enorme per me è la possibilità di accedere a cduna directory e quindi passare a un prompt della shell attraverso i miei mapping della shell (di seguito).
  • ci per svuotare qualunque cosa tu sia bloccato.
  • :! per il lancio di app standard.
    • Ho mappature per l'avvio di un prompt della shell, client mysql, file di log di Apache, ecc.
    • L' integrazione con Subversion è sempre piacevole. Quick diffs, stats, ecc.
  • :abbr per far sparire la digitazione ripetitiva di blocchi di grandi dimensioni.
  • Tabs. Devo aggiungere altro?
  • Suddividere i file, sempre bene. :Sexè sempre bello.
  • :set paste! per evitare che il rientro automatico venga eseguito.

Uso tutti questi ad eccezione di abbr. Tendo a fare molte più macro delle abbreviazioni.
Frew Schmidt,


1

Uso pesantemente i seguenti comandi mentre scrivo o attraverso il codice C / Tcl / Perl:

copia-incolla codice

CTRL-fe CTRL-bper l'avanzamento avanti e indietro della pagina per l'attraversamento
%blocco per blocco vai
^ all'inizio della riga
$ vai all'ultima riga

iniziare a selezionare il codice usando il comando v(modalità visiva) e uno qualsiasi dei tasti di spostamento sopra
yper copiare
pper incollare

s per eliminare un carattere e passare alla modalità di inserimento per digitare un nuovo testo.

Attraversamenti a livello di codice (richiede la disciplina dello stile di codifica)

]]per l'avvio della funzione successiva
[[per l'avvio della funzione precedente

CTRL-] per passare alla definizione di una variabile / funzione / macro se i tag sono disponibili.

Ricerca

* => cerca la parola (o il testo selezionato usando v) nella direzione avanti
# => cerca la parola (o il testo selezionato usando v) nella direzione indietro
n => esegue il comando di ricerca precedente nella direzione avanti
N => esegue il comando di ricerca precedente nella direzione indietro

Tutti i comandi sopra possono essere anteposti con un numero per indicare quante volte eseguirlo. La realizzazione del potere di questa dimensione aggiuntiva arriva lentamente man mano che si usa sempre più vim e si sfida a migliorarsi.


Ah,]] e [[sono nuovi per me. Questo è figo!
Ha ricevuto Schmidt il

0

Ho appena inserito il testo. Tutto il resto è solo ... Zucchero.


0

Sono un ex utente di TextPad e avevo memorizzato molti dei tasti di scelta rapida di quel programma. Una delle prime cose che ho fatto in Vim è stata l'apprendimento della funzione mappa per mantenere la coerenza (ricerca F5, sostituzione F8, ecc.). Ho creato il mio schema di colori personale e preso in prestito molto dai file vimrc degli altri. Viva Vim! Configurabile a qualsiasi livello.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.