2010-03-17 12 views
14

può essere utilizzato per commentare o indentare contemporaneamente un numero di righe? Per esempio:Il rientro o commento di più righe di testo con vi

for item in Lista: 
    ind = int(floor(1.0*(item-lmin)/width)) 
    if ind==nintervals: 
     ind=ind-1 
    print item,ind 

commento a:

#for item in Lista: 
    #ind = int(floor(1.0*(item-lmin)/width)) 
    #if ind==nintervals: 
     #ind=ind-1 
    #print item,ind 

o rientrare a:

for item in Lista: 
     ind = int(floor(1.0*(item-lmin)/width)) 
     if ind==nintervals: 
      ind=ind-1 
     print item,ind 

P.D. È rilevante la differenza tra VI e VIM?

+1

La differenza tra il VI e vim è discusso qui: http://stackoverflow.com/questions/1159206/difference-between-vi-vim Basta ricordare, in questi giorni (a meno che non si sta lavorando su una vecchia piattaforma pazza) hai vim, non vi. Vim viene solitamente installato con vi aliased su vim e l'opzione 'compatible' la rende" vi compatibile ", che in pratica significa disattivare tutte le buone funzionalità aggiunte in vim. – Cascabel

+1

Ulteriori informazioni sul rientro delle righe in Vim qui: http: // stackoverflow.it/questions/2332340 –

risposta

35

qui è un altro modo.

  1. blocco linee con ctrl+v
  2. Inserire un commento segno (//) con I
  3. fuga con ESC

la tipizzazione chiave è

ctrl+vjjjjI//ESC

+1

Ora, puoi dirci come decommentarlo in un'istanza successiva .. –

+2

Non importa, l'ho trovato .. 'ctrl + v' ->' l' -> 'd' Se c'è un I migliore mi piacerebbe sapere –

+4

Quando premo I (i maiuscole) va in modalità inserimento solo sulla prima riga del blocco. – Syl

0

posizionare il cursore sulla prima linea, contare quante linee dovrebbero essere rientrato, nell'esempio di cui sopra è 5, poi per cancelletto (#) tipo :.,.+5%s/^\([ <tab>]*\)/#\1/<enter> o per una scheda indentazione, :.,.+5%s/^\([ <tab>]*\)/<tab>\1/<enter>, <scheda> e <immettere> sono la scheda e immettere le chiavi.

Ci sono probabilmente modi più eleganti per farlo, ma qualcosa di simile è una cosa rapida e sporca.

14

di commentare, premere un capitale V per accedere alla modalità LINE VISUAL, selezionare tutte le linee, quindi premere : per accedere alla modalità di comando e utilizzare il comando (si noti che VIM già include i '<,'> marchi per voi):

:'<,'>s/^/#/ 

Se si preferisce marchi hash accanto al testo, e non vicino al margine sinistro, il comando è:

:'<,'>s/^\(\s*\)/\1#/ 

Per trattino, selezionare il bl ock lo stesso, quindi digitare > in rientro, < in unindent.

+1

Btw, per aggiungere '//' invece di '#' all'inizio della riga, devi solo sostituire '#' con '\/\ /' come questo ': '<,'> s/^/\/\ // 'dopo aver fatto' Ctrl + v' (o 'V') e': 'sulle linee che si desidera bloccare il commento. – Armfoot

0

Per i commenti è possibile utilizzare la selezione VISUAL BLOCK (Ctrl-V) e selezionare l'inizio delle linee, quindi premere Maiusc-I e scrivere una #. Dopo aver premuto Esc tutte le linee ottengono il #.

0

La mia solita soluzione è:

<ESC> 
<q><a> => start a macro and save it as macro a 
<^> => to get to the start of the line 
<i> => insert mode 
<#> => Add the # 
<ESC> => End insert mode 
<down> => Move to the next line 
<q> => End macro 

Poi una volta:

<[at]><a> => repeat macro a 

Poi basta ripetere < [at]> < [at]> (Ripetere l'ultima eseguita macro) fino a quando tutte le linee sono commentate . Puoi semplicemente tenere premuto < [at]> e lasciare che la ripetizione della tastiera faccia il resto.

BTW: Come si scrive un segno [at] qui senza stackoverflow trasformandolo in "> blockquote"?

Per trattino:

[shift] + [v] => line select mode 
[down] => until all lines to indent are selected 

poi:

[>] => indent once 

o:

[2..x][>] => indent 2..x levels 
1

selezionare le linee utilizzando la modalità visiva.

  • Per far rientrare una volta digitare >> o << al rientro a destra oa sinistra rispettivamente. Per rientare il numero n, digitare n>> o n<<.

  • Per commentare fare sostituire l'inizio della linea con il commento:

    : '<,'> s/^/#/

'<,'> mezzi "dall'inizio della selezione fino alla fine.

s/^/#/ sostituisce all'inizio di ogni riga nell'intervallo con #, assumendo # fa una linea in un commento.

4

tipo :set number. prendere nota del numero di riga iniziale e finale del blocco che si desidera commentare. poi fare un intervallo di sostituzione indirizzo, ad esempio

:12,17s/^/#

+0

Oppure utilizzare 'V' in modalità normale per selezionare una riga, utilizzare 'j/k' per selezionare più righe e usare ': <,> s/^/#' in modalità ex. EDIT: Oops, ho appena visto questo è già menzionato in una risposta precedente. –

+0

Questa era l'unica soluzione in cui potevo lavorare su Ubuntu 16.04. Le opzioni ctrl + v fallirebbero tutte dopo lo shift i. – Matt

2

So che ci sono un triliardo di risposte qui già che spiegano come utilizzare > e < per l'indentazione, quindi non ho intenzione di perdere tempo con questo. Per quanto riguarda il commento, sebbene, mentre lo si può fare in modo rapido e sporco con un inserimento di blocco o una sostituzione, si può fare meglio con lo NERD Commenter plugin. Fornisce comandi per commentare e decommentare in vari modi, sa quale simbolo di commento inserire in base alla sintassi e può fare graziosi commenti su più righe se il linguaggio li supporta.

2

Un sacco di risposte qui, tutte con un tema. Il modo migliore per farlo in realtà dipende dal contesto (perché il contesto determina il metodo di navigazione più semplice), quindi farò alcune ipotesi sul contesto. Se la sezione che si desidera far rientrare o commento è un singolo paragrafo (ad esempio, si desidera far rientrare o commentare tutto dal cursore fino alla successiva riga vuota), si può rientrare con:

 
>) 

Se il cursore si non sul all'inizio del paragrafo, ma la sezione che si desidera far rientrare è un singolo paragrafo e il cursore si trova nel mezzo, utilizzare

 
>ip 

Infine, si supponga di voler far rientrare un blocco di codice delimitato da {} e il cursore si trova nel mezzo di quel blocco. Utilizzare

 
>i{ 

di commentare, in ogni caso basta sostituire il > con v e utilizzare i comandi di cui sopra per effettuare una selezione di blocco, poi fare un testo di sostituire come s/^/# /.

Il tasto è i comandi di navigazione. Consiglio vivamente

 
:help v_a 
3

Simile alla risposta accettata, ma più facile per i blocchi o paragrafi:

  1. blocco linee: Ctrl + V
  2. Selezionare paragrafo: }
  3. modalità
  4. Inserire: I (maiuscole i)
  5. Immettere il carattere da inserire: # (con lo spazio dopo il carattere, non Enter)
  6. Press: ESC

Questo dovrebbe completare automaticamente il personaggio in tutto il blocco selezionato. Fondamentalmente la diference con la risposta accettata è che invece di utilizzare j per scendere riga per riga si utilizza } per selezionare l'intero paragrafo (o si potrebbe utilizzare G per la fine del file, ad es

Versione corta:.

Ctrl + V + } + I + # + ESC

0

Se si sta utilizzando Python (o altre lingue che usano # come commento), un modo più veloce per commentare più righe potrebbe essere:

  1. Immettere la modalità blocco visivo (Ctrl+v) dall'inizio della riga.
  2. Andare giù secondo necessità (j più volte).
  3. Sostituire lo spazio con # premendo r quindi #.

Per rimuovere il commento, fare lo stesso, ma per il passaggio tre sostituirlo con lo spazio.

Problemi correlati