Hören Sie auf, meine Einrückung bei Kommentaren durcheinander zu bringen


12

Aus irgendeinem Grund ist Vim der Ansicht, dass bei allen meinen Kommentaren alle Einrückungen entfernt werden sollten. Wenn ich #an den Anfang einer Zeile füge , werden plötzlich alle führenden Leerzeichen entfernt. Wie kann ich das aufhalten?

Ich habe Janus und NERDtree installiert, falls es relevant ist, zusammen mit zahlreichen anderen persönlichen Konfigurationen in meinem .vimrc, aber keine, die (soweit ich weiß) ein solches Verhalten verursachen würden.

Antworten:


3

Ich bin nie zufrieden mit den Antworten "Set all diese Dinge nur für den Fall". Ich bestehe darauf zu wissen, welche dieser Dinge falsch eingestellt wurden und wie sie eingestellt wurden. Hier ist ein Befehl, der Ihnen die Werte aller hier erwähnten relevanten Einstellungen sowie den Ort anzeigt, an dem sie zuletzt festgelegt wurden. Wenn keine Last set fromZeile folgt, ist dies ein Standardwert. Es macht keinen Sinn, die setkorrekten Standardwerte beizubehalten.

: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

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

Alles was ich tun musste, um das zum Laufen zu bringen, war set smartindentein Plugin zu entfernen und zu meinem hinzuzufügen ~/.vim/vimrc:

set cindent cinkeys-=0#
set expandtab shiftwidth=4 tabstop=4 softtabstop=4

Beeindruckend! OP hat die gewählte Antwort geändert. Ich fühle mich geehrt.
Bruno Bronosky

6

Dies ist ein Kampf, den ich auch geschlagen habe und denke, ich habe endlich gewonnen. Das Problem ist, dass es ein Dutzend verschiedene Möglichkeiten gibt, wie das Verhalten überschrieben werden kann (durch Plugins / Syntaxen).
Hier sind alle Einstellungen, die ich verwenden musste, um den Kampf zu gewinnen:

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

Mit dem autocmdsollte das erste set cindentnicht nötig sein, aber dies ist eines der Dinge, bei denen ich immer wieder Zeilen hinzufügte, bis das Verhalten verschwand.


Ich konnte die letzten beiden Zeilen überspringen und das Problem trotzdem lösen
iconoclast

1
@iconoclast Beachten Sie jedoch, dass bei einigen Dateitypen möglicherweise weiterhin Probleme auftreten. Die letzte Zeile ist, weil einige Syntaxdateien Einrückungseinstellungen überschreiben.
Patrick

1
OH MEIN GOTT!!! set indentkeys-=0#!! Endlich ist mein Leiden vorbei !!!!!!!!
Kasapo



-1

Ich habe das Problem durch Kommentieren gelöst set smartindent.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.