Comment faire vi - Vim ne jamais utiliser d'onglets (conversion d'espaces en onglets, mauvais!), Rend la touche de tabulation == 4 espaces et indente automatiquement le code après l'accolade des blocs comme Emacs fait?
Comment puis-je enregistrer ces paramètres afin de ne jamais avoir à les saisir à nouveau?
J'ai vu d'autres questions liées à cela, mais cela semble toujours un peu différent de ce que je veux.
Comme il a été souligné dans quelques réponses ci-dessous, la méthode recommandée consiste maintenant à NE PAS utiliser smartindent, mais plutôt à 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 mettent un peu de temps à s'habituer à, mais plus vous lisez, plus Vim obtient:
:help smartindent
Mieux encore, 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 le souligne dans les commentaires, smartindent a été remplacé par cindent qui "fonctionne plus intelligemment", bien que cela reste principalement pour les langages avec une syntaxe de type C:
:help C-indenting
En rapport, si vous ouvrez un fichier qui utilise des onglets 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 filetype plugin indent on
dans votre vimrc. Vous pouvez ensuite spécifier des éléments tels que set sw=4 sts=4 et
dans .vim/ftplugin/c.vim, par exemple, sans avoir à les rendre globaux pour tous les fichiers en cours de modification et les autres syntaxes de type non C 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 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 au préalable.
N'utilisez pas le fichier .viminfo
qui existe 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éer 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 Shift + ZZ.
La méthode recommandée consiste à utiliser une indentation basée sur un type de fichier et à utiliser uniquement smartindent et cindent si cela ne suffit pas.
Ajouter ce qui suit à votre .vimrc
set expandtab
set shiftwidth=2
set softtabstop=2
filetype plugin indent on
J'espère que ça aide car c'est une réponse différente.
éditez votre ~/.vimrc
$ vim ~/.vimrc
ajoutez les lignes suivantes:
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
Depuis le 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 éditez Foo.Java, entrez ensuite un {
et tapez Enter indente la ligne suivante.
En ce qui concerne les onglets, il y a deux paramètres. Dans Vim, tapez deux points, puis "set tabstop = 4" pour que les onglets s'affichent sous la forme de quatre espaces. Hit deux fois à nouveau et tapez "set expandtab" qui insérera des espaces pour les onglets.
Vous pouvez mettre ces paramètres dans un fichier .vimrc (ou _vimrc sous Windows) de votre répertoire personnel. Vous ne devez donc les saisir qu'une seule fois.