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 that
neden 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 . equalexpr
equalprg
filetype plugin indent on
sizin içinde.vimrc
, filetype (ve eklenti) girinti-ilişkili kurallar geçerlidir. Yani düzenleme yaparkentabstop
değ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