Touche de tabulation = = 4 espaces et auto-indentation après lacets bouclés en Vim
Comment faire vi - Vim ne jamais utiliser les onglets (convertir les espaces en tabulations, mauvais!), rend la touche tab = = 4 espaces, et indente automatiquement le code après les blocs de maintien bouclés comme Emacs does?
Comment puis-je sauvegarder ces paramètres pour ne plus jamais avoir à les entrer?
j'ai vu d'autres questions liées à cela, mais il semble toujours être un peu hors de ce que je veux.
9 réponses
comme il a été souligné dans quelques réponses ci-dessous, la méthode préférée n'est pas maintenant d'utiliser smartindent, mais plutôt d'utiliser ce qui suit (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 .vimrc: fichier:
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
les fichiers d'aide prennent un peu de temps à s'habituer, mais plus vous lisez, mieux 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 graywh souligne dans les commentaires, smartindent a été remplacé par cindent qui "fonctionne plus habilement", bien que toujours principalement pour les langues avec une syntaxe de type C:
:help C-indenting
Lié, si vous ouvrez un fichier qui utilise à la fois des onglets et des espaces, en supposant que vous avez
set expandtab ts=4 sw=4 ai
vous pouvez remplacer tous les onglets par des espaces dans le fichier entier avec
:%retab
la meilleure façon d'obtenir une indentation spécifique à un type de fichier est d'utiliser filetype plugin indent on
dans votre vimrc. Ensuite, vous pouvez spécifier des choses comme set sw=4 sts=4 et
.vim / ftplugin/C. vim, par exemple, sans avoir à rendre celles-ci globales pour tous les fichiers en cours d'édition et autres syntaxes de type non-C seront indentées correctement, aussi (même lisps) .
pour avoir des onglets à 4 Espaces Dans la plupart des fichiers, un vrai char à 8 Espaces Dans les Makefiles, et une indentation automatique dans divers fichiers, y compris C/C++, mettez ceci 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 en premier.
N'utilisez pas le fichier .viminfo
qui existe dans le répertoire home. Il est utilisé à des fins différentes.
Étape 1: Aller à votre répertoire personnel
cd ~
Étape 2: Créer le fichier
vim .vimrc
Étape 3: Ajouter la configuration indiquée ci - dessus
filetype plugin indent on
set tabstop=4
set shiftwidth=4
set expandtab
Étape 3: Enregistrer le fichier, en appuyant sur Shift + ZZ .
la méthode recommandée est d'utiliser l'indentation basée sur le type de fichier et d'utiliser smartindent et cindent seulement si cela ne suffit pas.
ajoutez ce qui suit à votre .vimrc
set expandtab
set shiftwidth=2
set softtabstop=2
filetype plugin indent on
j'Espère que ça aide comme étant 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
le tiret automatique est basé sur le mode de syntaxe courante. Je le sais si tu montes Foo.java, puis entrer un {
et frapper entrer indente la ligne suivante.
comme pour les onglets, il y a deux réglages. Dans Vim, tapez deux points et ensuite "set tabstop=4" qui définira les onglets à afficher comme quatre espaces. Appuyez à nouveau sur deux points et tapez "set expandtab" qui insérera des espaces pour les onglets.
Vous pouvez mettre ces les paramètres de dans un .vimrc (ou _vimrc sous Windows) dans votre répertoire personnel, vous n'avez donc qu'à les taper une seule fois.