Come inserire il carattere di tabulazione quando l'opzione expandtab è attiva in Vim


352

Quando sono in modalità inserimento e ho l' expandtabopzione attivata, premendo i Tab ↹risultati si inserisce il numero configurato di spazi.

Ma ogni tanto voglio inserire un carattere di tabulazione reale.

Sai come si fa?

Risposte:


516

È possibile utilizzare <CTRL-V><Tab>in "modalità inserimento". In modalità Inserisci, <CTRL-V>inserisce una copia letterale del tuo prossimo personaggio.

Se devi farlo spesso, @ Dee`Kej ha suggerito (nei commenti) l'impostazione Shift+ Tabper inserire una scheda reale con questa mappatura:

:inoremap <S-Tab> <C-V><Tab>

Inoltre, come notato da @feedbackloop, su Windows potrebbe essere necessario premere <CTRL-Q>anziché <CTRL-V>.


33
Quindi utilizzare .per ripetere l'ultimo comando se si desidera inserire più schede.
Xavier T.

10
Ho avuto dei problemi con questa combinazione perché ero in modalità Comando. Assicurati di eseguire questo comando in modalità EDIT.
mgfernan,

11
Modalità INSERT, tecnicamente.
mkmurray,

2
Nota: se stai usando gVim su Windows, probabilmente dovrai usare CTRL+ Qinvece - vedi stackoverflow.com/questions/6951672/…
feedbackloop

8
Ho solo una mia scorciatoia per questo caso e sembra funzionare (non rompere altro): inoremap <S-Tab> <C-V><Tab>- Puoi metterlo nel tuo ~/.vimrcfile.
Dee'Kej,

34

Puoi disabilitare l'opzione expandtab da Vim come di seguito:

:set expandtab!

o

:set noet

PS: E ripristinalo quando hai finito di inserire la scheda, con "set expandtab" o "set et"

PS: Se hai impostato un tab equivalente a 4 spazi in .vimrc (softtabstop), ti potrebbe piacere anche impostarlo su 8 spazi per poter inserire una scheda premendo il tasto tab una volta anziché due (imposta softtabstop = 8 ).


In breve: set ete set noetper cambiare tabe spacesecondo necessità.
Eric Wang,

Ctrl + V ha provocato l'incollamento e non ho avuto il tempo di regolare le combinazioni di tasti. Questo ha aiutato
Shirish Hirekodi il

2

Dalla documentazione su expandtab:

Per inserire una scheda reale quando expandtabè attiva, utilizzare . Vedi anche e ins-expandtab . Questa opzione è ripristinata quando l' opzione è impostata e ripristinata quando l' opzione è ripristinata.CTRL-V<Tab>:retab
pastepaste

Quindi, se hai una mappatura per attivare / disattivare l' pasteopzione, ad es

set pastetoggle=<F2>

potresti anche fare <F2>Tab<F2>.

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.