J'ai été un peu gâté avec Eclipse et Java. J'ai commencé à utiliser vim pour faire du codage 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?
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
I a tout écrit sur les onglets dans vim , ce qui donne quelques informations intéressantes que vous n'avez pas posées. Pour indenter automatiquement les accolades, utilisez:
:set cindent
Pour mettre en retrait deux espaces (au lieu d'un onglet de huit espaces, vim default)
:set shiftwidth=2
Pour empêcher vim de convertir huit espaces en onglets:
:set expandtab
Si vous souhaitez modifier l'indentation d'un bloc de texte, utilisez <et>. J'utilise généralement ceci en conjonction avec le mode de sélection de bloc (v, sélectionnez un bloc de texte, <ou>).
(J'essaierais de vous dissuader d'utiliser l'indentation à deux espaces, car je (et la plupart des autres personnes) ai du mal à lire, mais c'est une autre discussion.)
De nombreuses fonctionnalités de vim (telles que autoindent
et cindent
) sont désactivées par défaut. Pour vraiment voir ce que vim peut faire pour vous, vous avez besoin d'un ~/.vimrc
Correct.
Une bonne entrée est dans $VIMRUNTIME/vimrc_example.vim
. Si vous voulez l'essayer, utilisez
:source $VIMRUNTIME/vimrc_example.vim
quand dans vim.
En fait, je suggèrerais simplement de copier le contenu dans votre ~/.vimrc
Car il est bien commenté, et un bon endroit pour commencer à apprendre à utiliser vim. Vous pouvez le faire en
:e $VIMRUNTIME/vimrc_example.vim
:w! ~/.vimrc
Ceci écrasera votre ~/.vimrc
Actuel, mais si tout ce que vous avez est là, indiquez les paramètres d'indentation suggérés par Davr, je ne vous tracasserai pas, car l'exemple que vimrc prendra en charge pour vous également. Pour un parcours complet de l'exemple et de ce qu'il fait pour vous, voir :help vimrc-intro
.
user@Host:~ $ echo set autoindent >> .vimrc
Je pense que la meilleure réponse est en fait expliquée sur le vim wikia:
http://vim.wikia.com/wiki/Indenting_source_code
Notez qu'il est déconseillé d'utiliser "set autoindent". La meilleure caractéristique de tout ce que je trouve dans cette explication est de pouvoir définir les paramètres par fichier, ce qui est particulièrement utile si vous programmez en python et en C++, par exemple, comme vous le souhaitez 4). espaces pour les onglets dans le premier et 2 pour les espaces dans le dernier.
et rappelez-vous toujours cette vénérable explication de Spaces + Tabs: