Empêche Vim de gâcher mon indentation sur les commentaires

13

Pour une raison quelconque, Vim pense que tous mes commentaires devraient avoir supprimé toute indentation. Si j'ajoute #au début d'une ligne, tout à coup tous les espaces de tête sont supprimés. Comment puis-je arrêter cela?

J'ai installé Janus et NERDtree, au cas où cela serait pertinent, ainsi que de nombreuses autres configurations personnelles dans ma .vimrc, mais aucune qui (à ma connaissance) ne provoquerait un tel comportement.

iconoclaste
la source

Réponses:

4

Je ne suis jamais satisfait de la réponse «mettre toutes ces choses au cas où». J'insiste pour savoir lesquelles de ces choses ont mal tourné et comment elles ont été réglées. Voici une commande qui vous montrera les valeurs de tous les paramètres pertinents mentionnés ici, ainsi que leur dernier réglage. Si aucune Last set fromligne ne suit, il s'agit d'une valeur par défaut. Inutile de setrestituer les valeurs par défaut correctes.

:verbose set autoindent? smartindent? cindent? cinkeys? indentexpr?

noautoindent
nosmartindent
  cindent
        Last set from ~/.vim/vimrc
  cinkeys=0{,0},0),:,!^F,o,O,e
        Last set from ~/.vim/vimrc
  indentexpr=
Press ENTER or type command to continue

Voir: http://vimdoc.sourceforge.net/htmldoc/options.html#:set-verbose

Tout ce que j'avais à faire pour que cela fonctionne était de supprimer set smartindentun plugin et d'ajouter à mon ~/.vim/vimrc:

set cindent cinkeys-=0#
set expandtab shiftwidth=4 tabstop=4 softtabstop=4
Bruno Bronosky
la source
Hou la la! OP a changé sa réponse. Je suis honoré.
Bruno Bronosky
6

C'est aussi une bataille que j'ai menée et je pense que j'ai finalement gagné. Le problème est qu'il existe une douzaine de façons différentes de remplacer le comportement (par des plugins / syntaxes).
Voici tous les paramètres que j'ai dû utiliser pour gagner la bataille:

set nosmartindent
set cindent
filetype plugin indent on
set cinkeys-=0#
set indentkeys-=0#
autocmd FileType * set cindent "some file types override it

Avec le autocmd, le premier set cindentne devrait pas être nécessaire, mais c'est l'une de ces choses où j'ai continué à ajouter des lignes jusqu'à ce que le comportement disparaisse.

Patrick
la source
J'ai pu sauter les deux dernières lignes et toujours résoudre le problème
iconoclaste
1
@iconoclast note cependant que vous pouvez toujours avoir des problèmes avec certains types de fichiers. La dernière ligne est due au fait que certains fichiers de syntaxe remplacent les paramètres d'indentation.
Patrick
1
OMG!!! set indentkeys-=0#!! FINALEMENT MES SOUFFRANCES SONT FINIES !!!!!!!!
Kasapo
-1

J'ai résolu le problème en commentant set smartindent.

GH1995
la source