Personnaliser les paramètres d'identification automatique dans un fichier VIMRC


2

J'ai autoindent activé dans mon fichier .vimrc mais je suis tombé sur un bug / une fonctionnalité gênante. Par exemple, lorsque je suis tabulé 3 fois et que je clique sur Entrée, la nouvelle ligne est également tabulée 3 fois. Ensuite, lorsque je tape à nouveau sur Entrée, cette nouvelle ligne est également mise en retrait 3 fois, comme il se doit. Le problème survient lorsque je remonte à la ligne précédente (la première des 2 nouvelles lignes). VIM supprime automatiquement les espaces blancs car il les voyait comme une ligne vide.

Y a-t-il un moyen d'empêcher que cela se produise? J'aimerais pouvoir revenir au codage comme ceci:

fonction test () { <return> <return>}<up> <right>

Merci!

Réponses:


2

Je ne connais aucun paramètre d’option qui obligerait Vim à laisser automatiquement ces lignes avec les espaces blancs en tête. La solution habituelle consiste à modifier votre style de montage de manière à ne pas perdre cet espace, à utiliser une commande en mode normal telle que o, Oou Sà créer une nouvelle ligne pour que l'indentation soit automatiquement effectuée, ou à forcer l'indentation sur la ligne en cours. ligne en mode insertion avec Ctrl-Tou Ctrl-F.

Cependant, si vous voulez vraiment utiliser cette séquence de touches particulière et ne pas perdre votre retrait, je pense que ce mappage fonctionnera.

:inoremap <Return> <Space><BS><Return>

En mettant un espace (ou n'importe quel caractère) sur la ligne, puis en espaçant l'arrière-dessus, vous indiquez à Vim qu'il s'agit d'une ligne non vide et qu'elle laissera les espaces blancs en tête.


1

Remapper le <Retour> ou <CR> semble génial. Il y a un inconvénient: l'utilisation de l'auto-complétion (<Cn>) de Vim est plus difficile à utiliser. Il se heurte également à des plugins qui s'appuient sur le comportement par défaut, par exemple supertab .

Cette page: http://vim.wikia.com/wiki/Get_the_correct_indent_for_new_lines_despite_blank_lines fournit une solution alternative: ajouter une fonction pour obtenir le retrait approprié malgré les lignes vides précédentes.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.