Prévenir (g) vim de commentaires auto-indenter
-
27-10-2019 - |
Question
Il y a quelque temps, je devais mettre
filetype plugin on
dans mon .vimrc pour une utilisation I plug-in.
Mais cela a causé un changement autoindent: Chaque fois que j'écris un commentaire « // », puis appuyez sur Entrée, indentation automatique vim passe automatiquement une autre « // » dans la ligne suivante
.// This is a comment. <ENTER>
// <-- vim automatically puts '// ' there
Que puis-je faire pour éviter cela? J'utilise le paramètre autoindent dans mon fichier vim. Je l'ai déjà essayé
filetype plugin indent off
mais il ne fonctionne pas.
La solution
Jetez un oeil à :h formatoptions
et :h fo-table
. Les options que vous devez désactiver sont r
et o
. les désactivant empêche vim d'insérer automatiquement le chef de commentaire (dans ce cas « // ») lorsque vous appuyez sur entrer en mode d'insertion ou lorsque vous appuyez sur o
ou O
en mode normal.
Autres conseils
Voir :help 'formatoptions'
- Je sais combien ennuyeux c'est
Essayez ceci:
:set fo-=or
Je réponds à votre titre plutôt que le corps de votre question, puisque votre titre amène les gens à cette page qui cherchent à arrêter de Vim commentaires indenter.
La variable qui contrôle si indente automatiquement un nouveau personnage Vim est indentkeys
. J'ai remarqué que indentation incorrecte en Python et YAML, donc je l'ai éteint l'indentation automatique seulement pour le caractère « # » au début de la ligne: :set indentkeys-=0#
Depuis le chargement du plug-in d'indentation filetype remplacera tous les paramètres de .vimrc que vous avez fait, vous pouvez configurer un autocmd
pour changer les indentkeys après un fichier est créé ou chargé. Voici les miens:
autocmd BufNewFile,BufReadPost * if &filetype == "python" | set indentkeys-=0# | endif
autocmd BufNewFile,BufReadPost * if &filetype == "yaml" expandtab shiftwidth=2 indentkeys-=0# | endif
Voir : h indentkeys
Notez que du fait de (peut-être) un bug, si vous utilisez Neovim vous devez également spécifier filetype plugin indent on
, ou le type de fichier ne seront pas réglées.