Yanıtlar:
En iyi yöntem bu ayarları koymaktır ~/.vim/after/ftplugin/<filetype>.vim
.
HTML için (4 karakter genişliğinde sekme istediğinizi varsayarsak):
~/.vim/after/ftplugin/html.vim
setlocal shiftwidth=4
setlocal softtabstop=4
setlocal noexpandtab
Bir ftplugin kullanmak, otomatik komutları kullanmak için tercih edilir, çünkü Vim zaten filetype kontrolleri kendiliğinden kontrol eder ve yeterli ftplugin kaynağını sağlamaya çalışır, bu nedenle daha fazla kontrol yapmak ve tekerleği yeniden uygulamak için hiçbir neden yoktur.
-- Düzenle --
Sahip varsayarsak filetype plugin on
Gözlerinde farklı vimrc
sen hangi - - Doğru filetype bulundu ve tampon için ayarlanmış bir kez Vim, düzenleme dosyalarının filetype saptamaya çalışır ve edecek, bu standart konumlarda gelen ftplugin kaynak deneyin:
$VIMRUNTIME/ftplugin/html.vim
~/.vim/ftplugin/html.vim
~/.vim/ftplugin/after/html.vim
Bunların hepsi otomatik olarak gerçekleşir , eğer filetipiniz Vim tarafından tanınırsa, herhangi bir filetip saptama mantığı eklemek için kesinlikle hiçbir neden yoktur: sadece ayarlarınızı doğru ftplugin'e eklemeniz yeterlidir.
filetype plugin indent on
Gözlerinde farklı vimrc
.
filetype plugin on
, vim'in yolu ftplugin/<filetype>.vim
ve içindeki after/ftplugin/<filetype>/vim
dosyaları içerir .
Bunu, içindeki autocommands ile yapabilirsiniz .vimrc
.
Örneğin, html_like_mode
HTML dosyalarını düzenlemek için çeşitli şeyler ayarlayan bir işleve sahibim . Benim içinde .vimrc
, var:
au BufNewFile,BufRead *.html call s:html_like_mode()
Bu dosya uzantısını kapatır. Etkinleştirmişseniz, dosya türünü de kapatabilirsiniz:
au FileType perl setlocal equalprg=perltidy
Gördüğünüz gibi, orada herhangi bir komutu yapmasını sağlayabilirsiniz. Böylece kolayca setlocal shiftwidth 4
* .c dosyalarınız için bir şey yapabilirsiniz .
augroup
İlgili otomatik komutları adlandırılmış gruplar halinde gruplamanıza izin verir. (Bkz . Otomatik Komut Grupları hakkında bilgi edinmek için buraya bakınız .) Otomatik kaynak augroup
kodları eklemek için ~/.vimrc
, onu her kaynak kaynağımızda kopya eklemeyecek şekilde kullanıyoruz.
augroup vimrc
autocmd!
augroup END
autocmd vimrc FileType html setlocal shiftwidth=4 tabstop=4