2011-12-31 22 views
17

C++ kod bloklarını seçmek için vi{ ve va{'u kullanabilirim. Onları yankına/silmeye ihtiyaç duyduğumda bana çok yardımcı oluyor.Vim kullanarak Python kod bloğu nasıl seçilir?

Ancak Python kod bloklarını belirtmek için girinti kullanır. Daha iyi bir yol bulamıyorum. Herhangi bir fikir?

+0

: Fonksiyonun bazı sınıf içinde ise

, bunun yerine "ZM" nin "ZC" Sen ZM yapmak için ~/.vimrc için aşağıdaki satırı ekleyin ihtiyaç

/zc çalışma kullanabilirsiniz [Vim indentation seviyesine göre Mark bloğu] olası kopyası (http://stackoverflow.com/questions/7377771/mark-block-based-on-indentation-level-in-vim) –

cevap

23

Henüz kullanmam için bir fırsatım olmadı, ancak Michael Smith’in vim-indent-object istediğine yakın olabileceğine benziyor.

Örnek kullanım

(aktif set number ile gösterilen hat sayısı): hattında İmleç

1 This is 
    2 some text 
    3  with multiple 
    4 levels of 
    5 indentation. 
    6 There is also 
    7  another stanza. 

2, 4 ya da 5, tip Vii imlecin ile 5.
boyunca çizgileri 2 seçmek satır 3, 2 ile 3 arasındaki çizgileri seçmek için Vai yazın.
Satır 3'teki imleç ile Vaiii (veya Viiii) yazın, 2 ile 5 arasındaki satırları seçin (görsel modda birden çok çentik nesnesinin kullanımı bir sonraki seviyeye kadar genişletir. yukarı/çıkış). Metin tanımladığı nesneleri

şunlardır:

  • ai:
    kullanışlı yukarıda güncel girinti düzeyi artı satır tanıtım çizgi kapmak istediğinizde (örneğin if ve onun “ardından” bloğu yakala)
  • ii: mevcut girinti düzeyi
  • aI:
    usef şimdiki girinti düzeyi artı yukarıda bir hat ve bir hat “son” ifadelerini kullanan diller için ul: if/endif).
  • iI: Mevcut girinti düzeyi nesneleri de metin nesneleri (yani cii akım girinti düzeyini ve başlangıcını silmek için bekliyoruz diğer komutlarla kullanılabilir

(etkin ii ve iI aynıdır) değiştirilmesinin eklenmesi).

+0

Geçerli girinti düzeyi boş satır olduğunda işe yarar mı? – industryworker3595112

6

Görsel mod için v'a ve ( veya )'a vurdum. Bu sizi bir sonraki boş satıra götürecektir. Biçimlendiriyorsanız, kod bloklarınıza uygun olmalıdır.

+1

Bu doğru mu?'{}' paragraflar içindir ve bir sonraki boş satıra hareket eder. – progo

+1

'(' ve ')' cümleleri içindir. "Bir cümle bir' .', '!' Veya '?' Ile biten, bir satırın sonunu ya da bir boşluk veya sekme ile biten olarak tanımlanır. " –

1

Satırları (: set nu) gösterebilir ve ardından kod bloğunun başladığı satıra gidebilir (: lineNumber) ve bunları atar.

0

Python için, genellikle tüm dosyayı katlamak için "zM" yi, sonra da tüm işlevi geçersiz kılmak için "2yy" kullanıyorum.

autocmd FileType python set foldmethod=indent