Mon paramètre actuel suppose 8 espaces; comment pourrais-je le redéfinir?
Cela dépend de ce que vous voulez dire. Voulez-vous que les caractères de tabulation réels apparaissent dans un espace de 4 espaces ou par “tabulation” signifie-t-il un retrait , généré en appuyant sur la touche de tabulation, ce qui entraînerait littéralement (jusqu’à) 4 caractères d’espace pour chaque “onglet” que vous tapez?
Selon votre réponse, l’un des ensembles de parameters suivants devrait vous convenir:
Pour les caractères de tabulation qui apparaissent à 4 espaces :
set tabstop=4
Si vous utilisez un caractère de tabulation réel dans votre code source, vous souhaiterez probablement aussi utiliser ces parameters (ce sont en fait les valeurs par défaut, mais vous voudrez peut-être les définir de manière défensive):
set softtabstop=0 noexpandtab
Enfin, si vous souhaitez qu’un retrait corresponde à un seul onglet, vous devez également utiliser:
set shiftwidth=4
Pour les retraits composés de 4 caractères d’espacement mais entrés avec la touche de tabulation:
set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
Pour rendre les parameters ci-dessus permanents, ajoutez ces lignes à votre vimrc .
Si vous avez besoin de faire des ajustements, ou si vous souhaitez simplement comprendre ce que signifient toutes ces options, voici une ventilation de chaque option:
tabstop
La largeur d’un tabstop dur mesurée en “espaces” – la largeur (maximale) d’un caractère de tabulation réel.
shiftwidth
La taille d’un “indent”. Il est également mesuré dans des espaces, donc si votre base de code est indentée avec des caractères de tabulation, alors vous voulez que
shiftwidth
égal au nombre de fois que vous avezshiftwidth
tabstop
. Ceci est également utilisé par des choses comme les commandes=
,>
et<
.
softtabstop
Si vous définissez cette valeur sur une valeur autre que zéro, la touche de tabulation (en mode insertion) insérera une combinaison d'espaces (et éventuellement de tabulations) pour simuler les tabulations à cette largeur.
expandtab
Si vous activez cette option, la touche de tabulation (en mode insertion) insérera des espaces au lieu de caractères de tabulation. Cela affecte également le comportement de la commande
retab
.
smarttab
Si vous activez cette option, la touche de tabulation (en mode insertion) insérera des espaces ou des tabulations pour passer au prochain retrait du prochain tabulateur lorsque le curseur se trouve au début d'une ligne (les seuls caractères précédents sont des espaces).
Pour plus de détails, consultez :help ' optionname '
in vim (ex :help 'tabstop'
)
Pour définir cela de manière permanente pour l’utilisateur actuel, créez (ou éditez) le fichier .vimrc
:
$ vim ~/.vimrc
Ensuite, collez la configuration ci-dessous dans le fichier. Une fois redémarré, les parameters de l’onglet s’appliqueront.
set tabstop=4 " The width of a TAB is set to 4. " Still it is a \t. It is just that " Vim will interpret it to be having " a width of 4. set shiftwidth=4 " Indents will have a width of 4 set softtabstop=4 " Sets the number of columns for a TAB set expandtab " Expand TABs to spaces
ou sténographie pour vim modeline:
vim :set ts=4 sw=4 sts=4 et :
Je l’ai copié et collé dans mon fichier .vimrc:
" size of a hard tabstop set tabstop=4 " always uses spaces instead of tab characters set expandtab " size of an "indent" set shiftwidth=4
Les 2 premiers parameters signifient que lorsque j’appuie sur la touche Tab, j’obtiens 4 espaces. Le troisième paramètre signifie que lorsque je fais V>
(c.-à-d. Visuel et indenté), j’obtiens aussi 4 espaces.
Pas aussi complet que la réponse acceptée, mais cela pourrait aider les gens qui veulent juste quelque chose à copier et à coller.
Mettez vos parameters souhaités dans le fichier ~ / .vimrc – Voir ci-dessous des instructions et des bonnes pratiques.
Il existe quatre méthodes principales pour utiliser les tabs dans Vim:
Toujours garder ‘tabstop’ à 8, définir ‘softtabstop’ et ‘shiftwidth’ à 4 (ou 3 ou tout ce que vous préférez) et utiliser ‘noexpandtab’. Ensuite, Vim utilisera un mélange d’tabs et d’espaces, mais en tapant et se comportera comme un onglet apparaît tous les 4 (ou 3) caractères.
Remarque: si vous définissez «tabstop» sur une autre valeur que 8, votre fichier risque de ne pas apparaître correctement (par exemple lors de l’impression).
Définissez “tabstop” et “shiftwidth” à ce que vous préférez et utilisez “expandtab”. De cette façon, vous insérerez toujours des espaces. Le formatage ne sera jamais gâché lorsque «tabstop» est modifié.
Réglez ‘tabstop’ et ‘shiftwidth’ à ce que vous préférez et utilisez | modeline | pour définir ces valeurs lors de la modification du fichier à nouveau. Ne fonctionne que lorsque vous utilisez Vim pour modifier le fichier.
Toujours définir ‘tabstop’ et ‘shiftwidth’ à la même valeur et ‘noexpandtab’. Cela devrait alors fonctionner (pour les indentations initiales uniquement) pour tout paramètre de tabulation utilisé par les utilisateurs. Si vous faites cela, il peut être intéressant d’avoir des tabs après le premier élément inséré en blanc. Sinon, les commentaires alignés seront erronés lorsque “tabstop” est modifié.
La source:
:help tabstop
Encore une chose, utilisez
:retab
convertir l’ tab
existant en spaces
http://vim.wikia.com/wiki/Converting_tabs_to_spaces
Ajouter une ligne
set ts=4
dans
fichier ~/.vimrc
par utilisateur
ou
/etc/vimrc
pour l’ensemble du système
Il y a peu de parameters qui définissent s’il faut utiliser des espaces ou des tabulations.
Voici donc des fonctions pratiques qui peuvent être définies dans votre fichier ~/.vimrc
:
function! UseTabs() set tabstop=4 " Size of a hard tabstop (ts). set shiftwidth=4 " Size of an indentation (sw). set noexpandtab " Always uses tabs instead of space characters (noet). set autoindent " Copy indent from current line when starting a new line (ai). endfunction function! UseSpaces() set tabstop=2 " Size of a hard tabstop (ts). set shiftwidth=2 " Size of an indentation (sw). set expandtab " Always uses spaces instead of tab characters (et). set softtabstop=0 " Number of spaces a counts for. When 0, featuer is off (sts). set autoindent " Copy indent from current line when starting a new line. set smarttab " Inserts blanks on a key (as per sw, ts and sts). endfunction
Usage:
:call UseTabs() :call UseSpaces()
Pour l’utiliser par extension de fichier, la syntaxe suivante peut être utilisée (ajoutée à .vimrc
):
au! BufWrite,FileWritePre *.module,*.install call UseSpaces()
Voir aussi: Conversion d’tabs en espaces .
Voici un autre extrait de Wikia qui peut être utilisé pour basculer entre les tabs et les espaces :
" virtual tabstops using spaces set shiftwidth=4 set softtabstop=4 expandtab " allow toggling between local and default mode function TabToggle() if &expandtab set shiftwidth=8 set softtabstop=0 set noexpandtab else set shiftwidth=4 set softtabstop=4 set expandtab endif endfunction nmap mz:execute TabToggle()'z
Il permet d’utiliser 4 espaces pour chaque onglet et un mappage sur F9 pour basculer les parameters.
:set sw=4
Voir Maîsortingser l’éditeur de VI