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.
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
Ł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.
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!
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ę:
W przypadku
autocmd
pierwszegoset cindent
nie powinno być to konieczne, ale jest to jedna z tych rzeczy, w których dodawałem wiersze, dopóki zachowanie nie zniknęło.źródło
set indentkeys-=0#
!! WRESZCIE MOJE CIERPIENIE SIĘ PONIŻEJ!Możesz zajrzeć na stronę kodu źródłowego Vim Wiki Indenting i sprawdzić, jak działa „autoindent”.
źródło
odnieść się do tej odpowiedzi:
http://vim.wikia.com/wiki/Restoring_indent_after_typing_hash
zmodyfikuj, aby:
lub:
źródło
Rozwiązałem problem, komentując
set smartindent
.źródło