Impedisci a Vim di rovinare la mia indentazione sui commenti


13

Per qualche ragione, Vim pensa che tutti i miei commenti dovrebbero essere rimossi. Se aggiungo #all'inizio di una riga, improvvisamente vengono rimossi tutti gli spazi bianchi iniziali. Come posso fermarlo?

Ho Janus e NERDtree installati, nel caso sia pertinente, insieme a molte altre configurazioni personali nella mia .vimrc, ma nessuna che (per quanto ne so) provocherebbe tale comportamento.

Risposte:


4

Non sono mai soddisfatto delle risposte "imposta tutte queste cose per ogni evenienza". Insisto per sapere quale di queste cose è stata messa in errore e come sono state impostate. Ecco un comando che ti mostrerà i valori di tutte le impostazioni rilevanti menzionate qui, così come dove sono state impostate l'ultima volta. Se nessuna Last set fromriga segue, è un valore predefinito. Inutile setriportare i valori predefiniti corretti.

: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

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

Tutto quello che dovevo fare per farlo funzionare era rimuovere set smartindentda un plugin e aggiungere al mio ~/.vim/vimrc:

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

Wow! OP ha cambiato la risposta selezionata. Sono onorato.
Bruno Bronosky,

6

Questa è una battaglia che ho combattuto anch'io e penso di aver finalmente vinto. Il problema è che ci sono una dozzina di modi diversi in cui il comportamento può essere ignorato (tramite plugin / sintassi).
Ecco tutte le impostazioni che ho dovuto usare per vincere la battaglia:

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

Con il autocmdprimo set cindentnon dovrebbe essere necessario, ma questa è una di quelle cose in cui ho continuato ad aggiungere linee fino a quando il comportamento non è scomparso.


Sono stato in grado di saltare le ultime due righe e risolvere ancora il problema
iconoclasta il

1
@iconoclast nota tuttavia che potresti avere ancora problemi con alcuni tipi di file. L'ultima riga è perché alcuni file di sintassi sovrascrivono le impostazioni di rientro.
Patrick,

1
OH MIO DIO!!! set indentkeys-=0#!! FINALMENTE LA MIA sofferenza è finita !!!!!!!!
Kasapo,



-1

Ho risolto il problema commentando set smartindent.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.