Saya menginstal vundle kemarin dan sejak itu saya lakukan, tabwidth yang saya konfigurasi di vimrc saya diabaikan dan diatur kembali ke 4 bukannya 2.
Saya menemukan bahwa baris berikut setelah paragraf vundle menyebabkannya:
filetype plugin indent on
Lekukan saya sudah diatur seperti ini:
set noexpandtab " Make sure that every file uses real tabs, not spaces
set shiftround " Round indent to multiple of 'shiftwidth'
set smartindent " Do smart indenting when starting a new line
set autoindent " Copy indent from current line, over to the new line
" Set the tab width
let s:tabwidth=2
exec 'set tabstop=' .s:tabwidth
exec 'set shiftwidth=' .s:tabwidth
exec 'set softtabstop='.s:tabwidth
Anda dapat memeriksa vimrc penuh saya di sini .
Saya menguji masalah indentasi menggunakan skrip python (di mana indentasi sangat penting).
Saya sudah mencoba mengubah filetype plugin indent on
ke filetype plugin on
tapi itu tidak mengubah apa pun. Hanya mengomentari kalimat itu akan membantu.
Sekarang, panduan instalasi vundle mengatakan, baris ini diperlukan.
Bagaimana cara memperbaiki masalah indentasi ini? Bisakah saya mengabaikan baris filetype atau apakah itu benar-benar wajib untuk tetap di vimrc?
Larutan:
Berkat @ChristianBrabandt dan @romainl, saya sekarang menemukan solusi yang juga dapat disimpan dalam satu file vimrc:
filetype plugin indent on
[...]
set noexpandtab " Make sure that every file uses real tabs, not spaces
set shiftround " Round indent to multiple of 'shiftwidth'
set autoindent " Copy indent from current line, over to the new line
" Set the tab width
let s:tabwidth=2
au Filetype * let &l:tabstop = s:tabwidth
au Filetype * let &l:shiftwidth = s:tabwidth
au Filetype * let &l:softtabstop = s:tabwidth
sumber
Jawaban:
Hal pertama yang pertama; baris di bawah ini sama sekali tidak ada hubungannya dengan Vundle atau manajemen plugin:
Perintah itu melakukan tiga hal:
Baris itu ada karena beberapa manajer plugin harus memastikan deteksi tipe file dinonaktifkan sebelum melakukan sihir mereka dan menggunakan Vim untuk pemrograman akan menyedot lebih keras tanpa ftplugins dan indentasi yang tepat. Menurut pendapat saya mereka harus berurusan dengan deteksi tipe file secara internal tetapi juga ...
Bagaimanapun, masalah Anda disebabkan oleh ftplugins yang terlalu posesif yang mengesampingkan pengaturan indentasi Anda dengan mereka. Python ftplugin adalah penyebab paling umum karena diputuskan belum lama ini bahwa ia harus menegakkan PEP8.
Jalan keluar yang mudah adalah menghindari sumber ftplugin sama sekali:
tetapi mereka biasanya datang dengan hal-hal yang berguna sehingga metode ini tidak benar-benar direkomendasikan.
Solusi terbersih adalah meninggalkan
filetype
garis dalam keadaan "optimal":dan timpa override mereka dengan milik Anda
after/ftplugin/python.vim
:Catatan:
smartindent
karena itu tidak pintar untuk memulai dengan dan usang oleh skrip indentasi filetype-spesifik pula.:execute
perintah Anda dengan:let
perintah pembersih untuk menghindari penggabungan yang tidak perlu.sumber
shiftwidth
ke nol dansofttabstop
ke -1 itu akan mengikuti pengaturan tabstop.Masalah lekukan berasal dari ftplugin, yang memuat file .vim dari
/usr/share/vim/vim-version-/ftplugin/-filetype-.vim
yang menimpa apa pun yang Anda miliki di.vimrc
file Anda . Anda dapat mengetahui di mana file itu dengan menjalankan perintah berikut di dalam vim:verbose set tabstop?
. Output akan mengarahkan Anda ke file yang mengesampingkan konfigurasi Anda.Dalam kasus saya, saya mengalami masalah dengan konfigurasi lekukan python saya.
Cara mudah untuk menyelesaikan ini adalah dengan melakukan hal berikut:
Buat folder .vim di folder rumah Anda (jika Anda tidak memilikinya)
Tambahkan yang berikut ini:
Ubah apa pun yang Anda inginkan dalam perintah. Milik saya terlihat seperti itu karena saya bekerja dengan tab bukan spasi putih.
sumber