İşimde, girintileme için ev stilini takip etmem gerekiyor, ki bu şöyle:
- HTML ve ruby kodlarken 2 boşluk
- javascript kodlanırken sekmeler, tabwidth = 4 önerilir
Dosya tipi başına farklı boşluk tercihlerini belirtmenin en iyi yolu nedir?
İşimde, girintileme için ev stilini takip etmem gerekiyor, ki bu şöyle:
Dosya tipi başına farklı boşluk tercihlerini belirtmenin en iyi yolu nedir?
Yanıtlar:
birçok yol var, ama burada basit, anlaşılması kolay bir yol var. bu satırları şuna ekle ~/.vimrc
:
autocmd FileType html setlocal ts=2 sts=2 sw=2
autocmd FileType ruby setlocal ts=2 sts=2 sw=2
autocmd FileType javascript setlocal ts=4 sts=4 sw=4
Peter'ın cevabı yeterince açıktır, ancak ne yazık ki seçenekler doğru değil. Bunun yerine aşağıdaki seçenekleri kullanmanız gerekir:
autocmd Filetype html setlocal ts=2 sw=2 expandtab
autocmd Filetype ruby setlocal ts=2 sw=2 expandtab
autocmd Filetype javascript setlocal ts=4 sw=4 sts=0 noexpandtab
Ayrıca dikkat:
:set list
.:retab!
komutu kullanarak vim'in dosyayı onarmasını sağlayabilirsiniz (boşlukları sekmelerle değiştirin veya tersini yapın) .expandtab
aşırısts=2
Peter'ın cevabına +1, ama Vim de başka bir çözüm sunuyor. Tek seferde daha karmaşık bir şey yapmak istiyorsanız setlocal
, bir kerede bir sürü seçenek, komut ve eşleme ayarlamak gibi, vim'in filetype eklenti özelliği kurtarmaya gelir.
Sahip olmanız filetype plugin on
veya filetype plugin indent on
içinde olmanız gerekir .vimrc
ve daha sonra örneğin yakut için bir eklenti oluşturabilirsiniz ~/.vim/ftplugin/ruby.vim
. Teknik olarak burada olduğu gibi tüm komutları kullanabilirsiniz, Ruby dosyası yüklendiğinde çalıştırmak, ancak önerilir olanlar dahil edilecek setlocal
, map <buffer>
, command -buffer
, ve tanımlanması fonksiyonları. Kullanım Kılavuzunda daha fazla bilgi bulunmaktadır; Eğer kodlama vimine oldukça aşina iseniz :help 41.11
, o zaman atlayın , aksi takdirde okuyun :help usr_40
ve :help usr_41
.
Ayrıca güzel bir vim betiği var: Açtığınız bir dosyanın girintisini algılamaya çalışan DetectIndent . Farklı kodlama stiline sahip birçok dosyayla çalışıyorsanız çok kullanışlıdır.
Benim .vimrc bir autocommand kullanın :
:autocmd BufReadPost * :DetectIndent
Sekme tuşuna her basıldığında boşluk karakterleri eklemek için 'expandtab' seçeneğini ayarlayın:
:set expandtab
Sonraki adım, sekme tuşuna basıldığında eklenecek boşluk karakteri sayısını kontrol etmek, 'tabstop' seçeneğini ayarlamaktır. Örneğin, bir sekme için 2 boşluk eklemek için şunu kullanın:
:set tabstop=2