2 votes

Personnaliser les paramètres de l'indentation automatique dans le fichier VIMRC

J'ai activé l'indentation automatique dans mon fichier .vimrc mais j'ai rencontré un bogue/une fonctionnalité ennuyeuse. Par exemple, lorsque je suis tabulé 3 fois, et que j'appuie sur retour, la nouvelle ligne est également tabulée 3 fois. Ensuite, lorsque j'appuie à nouveau sur Entrée, cette nouvelle ligne est également indentée 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 l'espace blanc parce qu'il l'a considéré comme une ligne vide.

Existe-t-il un moyen d'empêcher que cela ne se produise ? J'aimerais pouvoir recommencer à coder comme ça :

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

Merci !

2voto

Unnati Gutpa Points 11

Je ne connais pas d'option qui permettrait à Vim de laisser automatiquement ces lignes avec les espaces en tête. La solution habituelle est de changer votre style d'édition afin de ne pas perdre ces espaces, ou d'utiliser une commande en mode normal telle que o , O o S pour commencer une nouvelle ligne afin que l'indentation soit faite automatiquement, ou pour forcer l'indentation sur la ligne courante en mode insertion avec Ctrl-T o Ctrl-F .

Cependant, si vous voulez vraiment utiliser cette séquence de touches particulière sans perdre l'indentation, 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 reculant par-dessus, vous indiquez à Vim qu'il s'agit d'une ligne non vide et qu'il laissera l'espace de tête tranquille.

1voto

CrusaderJ Points 2556

Remapper le <Return> ou <CR> semble génial. Il a cependant un inconvénient : il rend l'utilisation de l'auto-complétion de Vim (<C-n>) plus difficile. Il entre également en conflit avec les plugins qui s'appuient sur le comportement par défaut, par ex. supertab .

Cette page : http://vim.wikia.com/wiki/Get_the_correct_indent_for_new_lines_despite_blank_lines propose une autre solution : l'ajout d'une fonction permettant d'obtenir l'indentation correcte malgré les lignes vides précédentes.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X