Lorsque je suis en mode INSERT et que l'option expandtab est activée, appuyer sur la touche permet d'insérer le nombre d'espaces configuré.
Mais parfois, je veux insérer le caractère de tabulation lui-même.
Sais-tu comment faire cela?
Vous pouvez utiliser <CTRL-V><Tab>
en "mode insertion". En mode insertion, <CTRL-V>
insère une copie littérale de votre prochain caractère.
Si vous avez besoin de le faire souvent, @ Dee`Kej a suggéré (dans les commentaires) Shift+Tab insérer un véritable onglet par
:inoremap <S-Tab> <C-V><Tab>
De plus, comme indiqué par @feedbackloop, sous Windows, vous devrez peut-être appuyer sur <CTRL-Q>
plutôt que sur <CTRL-V>
.
Vous pouvez désactiver l'option expandtab à partir de Vim comme ci-dessous:
:set expandtab!
ou
:set noet
PS: Et le redéfinir lorsque vous avez terminé d'insérer un onglet, avec "set expandtab" ou "set et"
PS: Si vous avez un jeu d'onglets équivalent à 4 espaces dans .vimrc (softtabstop), vous voudrez peut-être aussi le définir sur 8 espaces pour pouvoir insérer un onglet en appuyant une fois sur la touche de tabulation de deux fois (set softtabstop = 8).
De la documentation sur expandtab
:
Pour insérer un onglet réel lorsque
expandtab
est activé, utilisezCTRL-V
_<Tab>
_. Voir aussi:retab
et ins-expandtab .
Cette option est réinitialisée lorsque l'optionpaste
est définie et restaurée lorsque l'optionpaste
option est réinitialisée.
Donc, si vous avez un mappage pour basculer l’option paste
, par ex.
_set pastetoggle=<F2>
_
vous pouvez aussi faire _<F2>Tab<F2>
_.