vundle "filetype plugin indent on" kareler tabwidth ile


9

Dün vundle yükledim ve yaptığımdan beri, vimrc'de yapılandırdığım tab genişliği yok sayıldı ve 2 yerine 4'e ayarlandı.

Ben vundle paragraf sonra aşağıdaki satırın neden olduğunu öğrendim:

filetype plugin indent on

Girintim şöyle ayarlandı:

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

Tüm vimrc'imi buradan kontrol edebilirsiniz .

Girinti problemini bir python betiği (girintinin gerçekten önemli olduğu) kullanarak test ettim.

Zaten değişen çalıştı filetype plugin indent onetmek filetype plugin onama bu hiçbir şeyi değiştirmez. Sadece bu çizgiyi yorumlamak yardımcı olur.
Şimdi, vundle kurulum kılavuzu, bu satırın gerekli olduğunu söylüyor.

Bu girinti sorununu nasıl düzeltirim? Filetype satırını ommit edebilir miyim yoksa vimrc'de tutmak gerçekten zorunlu mu?

Çözüm:

@ChristianBrabandt ve @romainl sayesinde artık tek bir vimrc dosyasında da bulunabilecek bir çözüm buldum:

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

Sorunuzu cevaplamasa da, Vundle yerine vim-plug ile denedim ve mükemmel çalıştı ...
nobe4


Ayrıca, shiftwidth ve softtabstop ayarını sıfırlamak için yeni OptionSet otomatik komutunu da kullanabilirsiniz
Christian Brabandt

Yanıtlar:


10

Her şey sırayla; Aşağıdaki satırın Vundle veya eklenti yönetimi ile hiçbir ilgisi yoktur:

filetype plugin indent on

Bu komut üç şey yapar:

  • dosya tipi algılamayı etkinleştirir,
  • dosya türüne özgü komut dosyalarını (ftplugins) etkinleştirir,
  • dosya türüne özgü girinti komut dosyalarını etkinleştirir.

Bu satır orada çünkü bazı eklenti yöneticileri sihirlerini yapmadan önce dosya tipi algılamanın devre dışı bırakıldığından emin olmak zorundalar ve programlama için Vim'i kullanmak ftplugins ve uygun girinti olmadan çok daha zor emeceklerdi. Bence sadece dahili olarak dosya algılama ile uğraşmalılar ama iyi…

Her neyse, sorununuz, girintileme ayarlarınızı kendileriyle geçersiz kılan aşırı sahiplikli ftpluginlerden kaynaklanıyor. Python ftplugin en yaygın suçludur çünkü uzun zaman önce PEP8'i zorlaması gerektiğine karar verildi.

Kolay çıkış yolu, ftplugin'leri tamamen kaynak kullanmaktan kaçınmak olacaktır:

filetype indent on

ancak genellikle yararlı şeyler ile gelirler, bu yüzden bu yöntem gerçekten tavsiye edilmez.

En temiz çözüm filetypehattı "optimal" durumda bırakmaktır :

filetype plugin indent on

ve kendi geçersiz kılmalarını kendiniz geçersiz kılın after/ftplugin/python.vim:

setlocal noexpandtab
setlocal shiftround
setlocal autoindent

let s:tabwidth=2
let &l:tabstop = s:tabwidth
let &l:shiftwidth = s:tabwidth
let &l:softtabstop = s:tabwidth

Notlar:

  • Başladım smartindentçünkü filetype'a özgü girinti betikleriyle başlamak ve artık kullanmak o kadar akıllı değil.
  • Gereksiz birleştirmeyi önlemek için :executekomutlarınızı daha temiz :letkomutlarla değiştirdim.

1
shiftwidthSıfıra ve softtabstop-1'e ayarlarsanız , sekme ayarı uygulanır.
Christian Brabandt

açıklamalarınız için teşekkürler. Birden fazla bilgisayarla senkronize etmek istediğim için ayarlarımın çoğunu vimrc cihazımda korumak istiyorum. Çözümümü vimrc'imde kullandım ve sorumun altında yayınlanan @ChristianBrabandt SSS bağlantısını kullandım ve işe yarıyor. Çözümümü içerecek şekilde sorumu düzenleyeceğim.
wullxz

4

Girinti sorunu, dosyanızdaki her /usr/share/vim/vim-version-/ftplugin/-filetype-.vimşeyi geçersiz kılan bir .vim dosyası yükleyen ftplugin'den kaynaklanır .vimrc. vim içinde aşağıdaki komutu çalıştırarak dosyanın nerede olduğunu öğrenebilirsiniz :verbose set tabstop?. Çıktı sizi yapılandırmanızı geçersiz kılan dosyaya yönlendirir.

Benim durumumda python girinti yapılandırmayla ilgili sorunlar yaşıyordum.

Bunu çözmenin kolay bir yolu aşağıdakileri yapmaktır:

Ana klasörünüzde bir .vim klasörü oluşturun (yoksa)

cd ~/.vim
mkdir -p after/ftplugin/
cd ~/.vim/after/ftplugin/
vim python.vim

Aşağıdakileri ekleyin:

setlocal noexpandtab shiftwidth=4 softtabstop=4 tabstop=4

Komutta istediğinizi değiştirin. Benimki böyle görünüyor çünkü ben boşluk yerine sekmelerle çalışıyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.