Hentikan vim dari mengacaukan indentasi saya pada komentar

12

Untuk beberapa alasan Vim berpikir semua komentar saya harus menghapus semua indentasi. Jika saya menambahkan #awal baris, tiba-tiba semua spasi putih utama dihapus. Bagaimana saya bisa menghentikan ini?

Saya telah menginstal Janus dan NERDtree, jika itu relevan, bersama dengan konfigurasi pribadi lainnya yang banyak di saya .vimrc, tetapi tidak ada yang (sejauh yang saya tahu) akan menyebabkan perilaku seperti itu.

iconoclast
sumber

Jawaban:

3

Saya tidak pernah puas dengan jawaban "atur semua hal ini untuk berjaga-jaga". Saya bersikeras mengetahui yang mana dari hal-hal itu yang salah dan bagaimana hal itu terjadi. Berikut adalah perintah yang akan menunjukkan kepada Anda nilai-nilai semua pengaturan yang relevan yang disebutkan di sini, serta di mana pengaturan terakhir ditetapkan. Jika tidak ada Last set fromgaris yang mengikuti, itu adalah nilai default. Tidak ada gunanya setmenolak nilai default yang benar.

: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

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

Yang harus saya lakukan untuk membuatnya bekerja adalah menghapus set smartindentdari sebuah plugin dan menambahkan ke ~/.vim/vimrc:

set cindent cinkeys-=0#
set expandtab shiftwidth=4 tabstop=4 softtabstop=4
Bruno Bronosky
sumber
Wow! OP mengubah jawaban yang mereka pilih. Saya merasa terhormat.
Bruno Bronosky
6

Ini adalah pertempuran yang aku lawan juga, dan kupikir aku akhirnya menang. Masalahnya adalah bahwa ada selusin cara perilaku yang dapat ditimpa (oleh plugin / sintaksis).
Inilah semua pengaturan yang harus saya gunakan untuk memenangkan pertempuran:

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

Dengan autocmd, yang pertama set cindentseharusnya tidak perlu, tapi ini adalah salah satu hal di mana saya terus menambahkan garis sampai perilaku itu hilang.

Patrick
sumber
Saya dapat melewati dua baris terakhir dan masih menyelesaikan masalah
iconoclast
1
@iconoclast mencatat bahwa Anda mungkin masih memiliki masalah dengan beberapa jenis file. Baris terakhir adalah karena beberapa file sintaks mengesampingkan pengaturan indentasi.
Patrick
1
OH TUHAN!!! set indentkeys-=0#!! AKHIRNYA PENDERITAAN SAYA LEBIH !!!!!!!!
Kasapo
-1

Saya telah memecahkan masalah dengan berkomentar set smartindent.

GH1995
sumber