Touche Tab == 4 espaces et mise en retrait automatique après les accolades dans Vim
-
04-07-2019 - |
Question
Comment créer un vi - Vim n'utilise jamais d'onglets (conversion d'espaces en onglets, mauvais!), rend la touche de tabulation == 4 espaces et indente automatiquement le code après bouclage. des croisillons comme qu'Emacs fait?
Comment puis-je enregistrer ces paramètres pour ne jamais avoir à les saisir à nouveau?
J'ai vu d'autres questions à ce sujet, mais cela semble toujours un peu différent de ce que je veux.
La solution
Comme cela a été souligné dans quelques réponses ci-dessous, la méthode à privilégier consiste maintenant à NE PAS utiliser smartindent, mais plutôt à utiliser les éléments suivants (dans votre . vimrc ):
filetype plugin indent on
" show existing tab with 4 spaces width
set tabstop=4
" when indenting with '>', use 4 spaces width
set shiftwidth=4
" On pressing tab, insert 4 spaces
set expandtab
Dans votre fichier .vimrc: :
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
Les fichiers d’aide mettent un peu de temps à s’habituer, mais plus vous lisez, plus Vim obtient:
:help smartindent
Encore mieux, vous pouvez intégrer ces paramètres dans votre source pour la portabilité:
:help auto-setting
Pour voir vos paramètres actuels:
:set all
Comme le graywh a été remplacé dans les commentaires, smartindent a été remplacé par cindent qui "fonctionne plus intelligemment", bien que toujours principalement pour les langues avec une syntaxe de type C:
:help C-indenting
Autres conseils
En rapport, si vous ouvrez un fichier qui utilise à la fois des tabulations et des espaces, en supposant que vous ayez
set expandtab ts=4 sw=4 ai
Vous pouvez remplacer tous les onglets par des espaces dans tout le fichier avec
:%retab
Le meilleur moyen d'obtenir une indentation spécifique à un type de fichier est d'utiliser l'indentation du type de fichier> sur le type
dans votre vimrc. Ensuite, vous pouvez spécifier des éléments tels que , par exemple, sans définir de valeur globale pour tous les fichiers en cours d’édition et pour d’autres fichiers non-C. Les syntaxes de type seront également indentées correctement (même lisps) .
Pour avoir des onglets à 4 espaces dans la plupart des fichiers, un caractère de 8 onglets dans Makefiles et une mise en retrait automatique dans divers fichiers, y compris C / C ++, placez-le dans votre fichier ~ / .vimrc
:
" Only do this part when compiled with support for autocommands.
if has("autocmd")
" Use filetype detection and file-based automatic indenting.
filetype plugin indent on
" Use actual tab chars in Makefiles.
autocmd FileType make set tabstop=8 shiftwidth=8 softtabstop=0 noexpandtab
endif
" For everything else, use a tab width of 4 space chars.
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.
Sur de nombreux systèmes Linux, comme Ubuntu, le fichier .vimrc
n'existe pas par défaut. Il est donc recommandé de le créer au préalable.
N'utilisez pas le fichier .viminfo
existant dans le répertoire de base. Il est utilisé à des fins différentes.
Étape 1: accédez à votre répertoire personnel
cd ~
Étape 2: créez le fichier
vim .vimrc
Étape 3: ajoutez la configuration indiquée ci-dessus
filetype plugin indent on
set tabstop=4
set shiftwidth=4
set expandtab
Étape 3: enregistrez le fichier en appuyant sur Maj + ZZ .
La méthode recommandée consiste à utiliser une indentation basée sur un type de fichier et à n’utiliser que smartindent et cindent si cela ne suffit pas.
Ajoutez les éléments suivants à votre fichier .vimrc
set expandtab
set shiftwidth=2
set softtabstop=2
filetype plugin indent on
J'espère que cela aide car c'est une réponse différente.
éditez votre ~ / .vimrc
$ vim ~/.vimrc
ajouter les lignes suivantes:
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
À partir du Wiki VIM :
:set tabstop=4
:set shiftwidth=4
:set expandtab
L'indentation automatique est basée sur le mode de syntaxe actuel. Je sais que si vous modifiez Foo.java, saisissez un {
et appuyez sur Entrée pour mettre en retrait la ligne suivante.
En ce qui concerne les onglets, il existe deux paramètres. Dans Vim, tapez deux points, puis "set tabstop = 4". qui définira les onglets à afficher comme quatre espaces. Appuyez à nouveau sur le colon et tapez " set expandtab " qui va insérer des espaces pour les onglets.
Vous pouvez placer ces paramètres dans un répertoire .vimrc (ou _vimrc sous Windows) de votre répertoire personnel. Vous ne devez donc les saisir qu'une seule fois.