web-dev-qa-db-fra.com

Comment utiliser uniquement l'onglet (pas l'espace) dans vim

Je préfère utiliser tab que white space (peut être un peu différent de la plupart des autres)

Mais j'ai trouvé que lorsque j'appuyais sur Enter à la fin de la ligne, cela ajoutait --- espaces blancs, mais pas tab. Donc, je dois les supprimer et appuyer sur tab.

Je veux savoir comment définir vim comme:

  1. utilisez uniquement tab pour indenter les lignes
  2. un onglet ressemble à 4 espaces, mais est en fait un onglet
  3. quand frappé enter à la fin d'une ligne, la nouvelle ligne est démarrée avec seulement des tabulations

J'ai cherché sur Google pendant un certain temps, mais je n'ai pas trouvé de bonne réponse. Merci d'avance


MISE À JOUR

La réponse @Alok a bien fonctionné dans la plupart des cas. Mais je viens de découvrir, parfois, cela dépend du type de fichier. Par exemple, si vous modifiez un fichier haml et qu'il existe un haml.vim dans votre vimfiles/indent/, tous les onglets seront convertis en space. Donc, si vous voulez qu'il soit tab uniquement, vous devez modifier (ou supprimer) le fichier de retrait correspondant.

62
Freewind

Les paramètres que vous recherchez sont:

set autoindent
set noexpandtab
set tabstop=4
set shiftwidth=4

En ligne unique:

set autoindent noexpandtab tabstop=4 shiftwidth=4

autoindent peut être remplacé par smartindent ou cindent, selon vos goûts. Regardez aussi filetype plugin indent on.

http://vim.wikia.com/wiki/Indenting_source_code

87
Alok Singhal