Question

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 faire en sorte que vim fasse automatiquement le bon espacement des blocs?

Ainsi, après avoir tapé un {, la ligne suivante aura 2 espaces en retrait, et un retour sur cette ligne le maintiendra au même retrait, et un} retournera 2 espaces en arrière?

Était-ce utile?

La solution

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

Autres conseils

J'ai tout écrit sur les onglets dans vim , ce qui donne des informations intéressantes sur lesquelles vous n'avez pas posé de questions. . Pour mettre automatiquement les accolades en retrait, 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 > ;. Je l’utilise habituellement en conjonction avec le mode de sélection de bloc (v, sélectionne un bloc de texte, & Lt; ou & Gt;).

(J'essaierais de vous dissuader d'utiliser une indentation à deux espaces, car je (et la plupart des gens) 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 décent

.

Un bon démarreur est dans ~/.vimrc. Si vous voulez l'essayer, utilisez

:source $VIMRUNTIME/vimrc_example.vim

quand dans vim.

En fait, je suggérerais simplement de copier le contenu sur votre $VIMRUNTIME/vimrc_example.vim car il est bien commenté et constitue un bon point de départ pour apprendre à utiliser vim. Vous pouvez le faire en

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

Ceci écrasera votre :help vimrc-intro actuel, mais si tout ce que vous avez est là, 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 <=>.

Exécutez simplement:

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 " 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, car vous voudriez 4 espaces pour les onglets dans l'ancien et 2 pour des espaces dans ce dernier.

et souvenez-vous toujours de cette vénérable explication de Spaces + Tabs:

http://www.jwz.org/doc/tabs-vs -spaces.html

Essayez:

définir sw = 2

set ts = 2

set smartindent

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top