Zaman zaman, genellikle dosyaya bir şey kopyaladıktan / yapıştırarak Vim'i ayarladığım (seviye başına 4 boşluk) girintiye girintili olmayan kodla çalışmak zorundayım. Genellikle ile yetinmek <<ve >>. Sorun şu ki bir sonraki girinti seviyesine atlamıyorlar, sadece 4 boşluk ekliyor veya çıkarıyorlar.
Böyle bir kodum varsa
if condition:
do this
do that
yapıyor >>üzerinde do thatneden olur
if condition:
do this
do that
Buna gitmesini istiyorum
if condition:
do this
do that
Yukarıdaki satırın girintisini kolayca eşleştirmenin yanı sıra, bir sonraki girinti seviyesine atlamasını istiyorum, 4 boşluk eklemeyin.
Girintiyle ilgili .vimrc dosyamda olan şey bu
:set tabstop=4 shiftwidth=4 expandtab
>>ve <<sırasıyla istediğiniz olmayan girinti ekleyip kaldırın. İstediğiniz "biçimlendirme" ile yapılır ==.
:nnoremap >> ^i<tab><esc>gerçekten sekme davranışı istiyorsanız harita olabilir>>
==yukarıdaki satır seviyesine atlayacak. Bilmek iyi bir şey olsa da, ilgilendiğim tüm durumlarda işe yaramaz. Soruya ek olarak, istediğim şey şu >>ve <<bu yönde sınırdan bir sonraki vardiya genişliğinin katlarına girintili / girintili olmak .
==kullanır . equalexprequalprg
filetype plugin indent onsizin içinde.vimrc, filetype (ve eklenti) girinti-ilişkili kurallar geçerlidir. Yani düzenleme yaparkentabstopdeğerinizin gerçekte ne olduğunu kontrol edin (set tabstop?diğer ayarlar için de aynıdır) ve satırınızı bir 'after' dosyasına ekleyerek bu değerleri değiştirin: stackoverflow.com/a/159066/5000478