Przestań vim od zepsucia mojego wcięcia w komentarzach

13

Z jakiegoś powodu Vim uważa, że ​​wszystkie moje komentarze powinny zostać usunięte wszystkie wcięcia. Jeśli dodam #na początku linii, nagle wszystkie wiodące białe znaki zostaną usunięte. Jak mogę to zatrzymać?

Mam zainstalowane Janus i NERDtree, na wypadek, gdyby okazało się to odpowiednie, wraz z wieloma innymi osobistymi konfiguracjami .vimrc, ale żadnymi, które (o ile mi wiadomo) spowodowałyby takie zachowanie.

ikonoklasta
źródło

Odpowiedzi:

4

Nigdy nie jestem zadowolony z odpowiedzi „ustaw wszystkie te rzeczy na wszelki wypadek”. Nalegam, aby wiedzieć, które z tych rzeczy zostały źle ustawione i jak zostały ustawione. Oto polecenie, które pokaże ci wartości wszystkich odpowiednich ustawień wymienionych tutaj, a także miejsca ich ostatniego ustawienia. Jeśli nie Last set fromnastępuje żaden wiersz, jest to wartość domyślna. Nie ma sensu setodnosić się do prawidłowych wartości domyślnych.

: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

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

Wszystko, co musiałem zrobić, aby to działało, to usunięcie set smartindentwtyczki i dodanie do mojego ~/.vim/vimrc:

set cindent cinkeys-=0#
set expandtab shiftwidth=4 tabstop=4 softtabstop=4
Bruno Bronosky
źródło
Łał! OP zmienił wybraną odpowiedź. Jestem zaszczycony.
Bruno Bronosky,
6

To bitwa, w której również stoczyłem i myślę, że w końcu wygrałem. Problem polega na tym, że istnieje kilkanaście różnych sposobów na obejście tego zachowania (przez wtyczki / składnie).
Oto wszystkie ustawienia, których musiałem użyć, aby wygrać bitwę:

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

W przypadku autocmdpierwszego set cindentnie powinno być to konieczne, ale jest to jedna z tych rzeczy, w których dodawałem wiersze, dopóki zachowanie nie zniknęło.

Patrick
źródło
Byłem w stanie pominąć dwie ostatnie linie i nadal rozwiązać problem
iconoclast
1
@iconoclast pamiętaj, że nadal możesz mieć problemy z niektórymi typami plików. Ostatni wiersz jest taki, że niektóre pliki składniowe zastępują ustawienia wcięć.
Patrick
1
O MÓJ BOŻE!!! set indentkeys-=0#!! WRESZCIE MOJE CIERPIENIE SIĘ PONIŻEJ!
Kasapo
-1

Rozwiązałem problem, komentując set smartindent.

GH1995
źródło