82 votes

Indenter automatiquement les espaces avec C dans vim?

J'ai été un peu gâté avec Eclipse et Java. J'ai commencé à utiliser vim pour coder en C dans un environnement Linux. Existe-t-il un moyen de permettre à vim de faire automatiquement le bon espacement des blocs?

Ainsi, après avoir tapé un {la prochaine ligne aura 2 espaces en retrait, et un retour sur cette ligne le maintiendra à la même indentation, et un} retournera de 2 espaces?

132voto

davr Points 9556

Ces deux commandes devraient le faire:

 :set autoindent
:set cindent
 

Pour les points bonus, placez-les dans un fichier nommé .vimrc situé dans votre répertoire personnel sous linux

54voto

Commodore Jaeger Points 11949

J'ai écrit tout sur les onglets dans vim, qui donne quelques choses intéressantes que vous ne demandez pas à ce sujet. Automatiquement tiret accolades, utilisez:

:set cindent

Retrait de deux espaces (au lieu d'un onglet de huit espaces, le vim par défaut):

:set shiftwidth=2

Pour garder vim de la conversion de huit espaces dans des onglets:

:set expandtab

Si jamais vous souhaitez modifier l'indentation d'un bloc de texte, utiliser les touches < et >. J'ai l'habitude d'utiliser ce projet en collaboration avec bloc-sélectionnez le mode (v, sélectionnez un bloc de texte, < ou >).

(Je vais essayer de vous parler de l'utilisation de deux-espace de l'indentation, depuis que je suis (et la plupart des autres personnes) trouvent qu'il est difficile à lire, mais c'est un autre débat.)

8voto

rampion Points 38697

Beaucoup de vim fonctionnalités (comme autoindent et cindent) sont désactivés par défaut. Pour vraiment voir ce que vim peut faire pour vous, vous avez besoin d'un décent ~/.vimrc.

Un bon starter on est en $VIMRUNTIME/vimrc_example.vim. Si vous voulez l'essayer, utiliser

:source $VIMRUNTIME/vimrc_example.vim

lorsque dans vim.

J'avais en fait suggère simplement de copier le contenu de votre ~/.vimrc que c'est bien commenté, et un bon endroit pour commencer à apprendre à utiliser vim. Vous pouvez le faire par

:e $VIMRUNTIME/vimrc_example.vim
:w! ~/.vimrc

Cela permettra de remplacer votre actuel ~/.vimrc, mais si tout ce que vous avez là est les paramètres de retrait Davr suggéré, je ne vous inquiétez pas, comme l'exemple vimrc prendra soin de cela pour vous. Pour une solution complète, de l'exemple, et ce qu'il fait pour vous, voyez :help vimrc-intro.

6voto

JamesM-SiteGen Points 416

Il suffit de lancer:

 user@host:~ $ echo set autoindent >> .vimrc
 

3voto

user809472 Points 31

Je pense que la meilleure réponse est vraiment expliqué sur le vim wikia:

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

Notez qu'il déconseille l'utilisation de "jeu d'indentation automatique." Le meilleur de tous je trouve cette explication est d'être capable de définir des paramètres de fichier, ce qui est particulièrement utile si vous programme en python et C++, par exemple, comme vous pouvez vous en voulez 4 espaces pour les onglets dans l'ancien et 2 pour les espaces dans le second.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X