2011-12-13 13 views
7

herkes uyum için kullanılması boşluk girinti karakter olarak sert sekmeler kullanır ama yapan bir şekilde onun vim kurulumu var mı? Ben sorunVim: C kaynak dosyaları ile uyum için kullanın girinti için sekmeleri, boşluk

if (condition1 && (anotherlongcondition || /* <-- Here I insert a newline */ 
|-------|------- whatever /* some additional alignment added automatically */ 

ardından cin (benim için bir zorunluluk olan) bazı hizalamayı sadece yol ekler gibi bir devam hattını başlatırken ben konumsal tercih ettiklerini ama bu hizalama olarak kullanılarak oluşturulur Mümkün olduğunca çok sabit sekme ve kalanları boşluklarla doldurma (görselleştirmeye çalıştığım gibi).

Yani, kısacası, cin gerçekten girinti ve hizalama ayırt etmek görünmüyor. Yukarıdaki örnekte eklenen tüm hizalamanın boşluk olması gerçekten hoşuma giderdi. Bu şekilde, ts anahtarını geçici olarak değiştirirken hizalama doğru korunacaktır.

tekrar berrak, asla herhangi doğrultusunda ilk boş olmayan karakter önünde <TAB> veya <SPACE> basarak (ve herhangi bir manuel vites ya da her türlü yapmıyor), aşağıdaki kodu yazabilmek istiyorum yapmak için :

void foo(int bar) 
{ 
|-------somestatement; 
|-------if (somecondition && (someothercondition || 
|-------      whatevercomesnext)) 
|-------|-------dosomething; 
} 

zaten ctab.vim denediniz, ancak manuel hizalama 1 adımlı arıtma tanıyor ve Sekme değil bir görevdir çünkü düzenleme bana saçma görünüyor yumuşak sekmeleri ile bir hizada hat, odaklanır genişlik adımı iyileştirme. cin'un karışık sekmeler ve hizalama için boşluklar kullanma şeklini değiştirmedim.

Bunu gerçekleştirmek için herhangi bir yerleşik yol bulmak için yönetilen değil. Belki de bir tane var mı? Her neyse, bunu yapan bir eklenti olduğundan şüpheliyim. Ben kuşkusuz kendimi vim-komut yok ve yeterli deneyime sahip olmasa bile, ben soru için üzgünüm,

+0

'kendim (sürüm 2.6) ctab.vim' ve ulaşmak istediğiniz şeyi yapmak için görünüyor, yani yukarıdaki kod parçasını yazarken, bilmiyorum – ekoeppen

cevap

1

Tamam ... En eklentileri sadece editörüm yapılandırmasını berbat çalıştı söylemeliyim. Sonunda bunun için iyi bir malzeme buldum.

http://vim.1045645.n5.nabble.com/Indent-with-tabs-align-with-spaces-td1183279.html

bu rahatça yapılması için şu anda vim yeterince esnek değil, Özetle.

My çözüm, şu anda bir devamıdır hattı başlatırken sadece bir hizalama birimini ekler :set cinoptions=(1 kullanıyor. Bu şekilde, eklenen hizalamanın bir alan olduğundan emin olabilirim (en azından :set ts=1'u almadığım sürece) ve boş alan miktarını el ile ekleyin. Bu hız açısından hala iyi ve benim için en az dikkat dağıtıcı davranış gibi görünüyor!

+0

. düzgün biçimlendirilmiş olması için herhangi bir sekme veya boşluk karakterleri yazmak zorunda. Ama ne yazık hala tüm girinti hesaplamak çok daha fazla kuralları olduğunu ve karışık sekmeler/boşluklarla girinti ... –

3

Şunlara ek olarak: set cino = (1, aynı zamanda bunlarla daha önce karşılaşmadığınız takdirde 'preserveindent' ve 'copyindent' seçenekleriyle de ilgilenebilirsiniz. Sorununuzu tam olarak çözmezler, ancak yardımcı doğru bir şekilde devam yoktur. Ben kullanıyorum

+0

Evet, onları karşılaştığınız! kabul gibi kendi yanıt işaretleyebilirsiniz –

İlgili konular