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.