Vim - seçili aralıktaki satırları say


83

Hangi aralıkta olursa olsun, bir aralıktaki satırları saymak istiyorum, ama diyelim ki görsel bir blok olsun. Bunu yapmanın en kısa yolu nedir? Aklıma gelen tek şey şöyle bir şey: '<,'>s/.//n ama bunun en kısa yol olduğuna inanmıyorum.

Öyleyse, biri bana bir ipucu verebilir mi? Şimdiden teşekkürler.

Yanıtlar:


141

Görsel modda gC-g

Tipik çıktı:

Selected 7 of 22 Lines; 8 of 32 Words; 201 of 491 Chars; 201 of 497 Bytes-- VISUAL LINE --


Kaynak : :he count-items( keşfedilebilir: :heTabTab... )


Harika! Bu ipucu için teşekkürler, 10 dakika geçer geçmez, bunu bir cevap olarak işaretleyeceğim) Ama ilginç, yine de, vim'de bir işlev var mı? Bir işlevi olması gerektiğinden oldukça eminim.
shabunc

@shabunc: "vim'de bir işlev var mı" ne demek? Yapabileceğin bir şey mi demek istiyorsun :call? Sorunuz bundan bahsetmedi.
Laurence Gonsalves

tıpkı diğer yerleşik işlevler gibi işlev ( :h functions;)
shabunc

1
@shabunc Yani, "evet" o zaman. Sorunuzda bir işlev istediğinizden bahsetmediniz. Bir aralıktaki satırların sayısını saymak için yerleşik bir işlevin var olduğuna inanmıyorum, ancak iki çağrı ile kendi isteğinizi kolayca tanımlayabilirsiniz getpos()(giriş olarak bir işareti kabul edebilir ve satır numarası dahil konumu döndürür) ve biraz çıkarma.
Laurence Gonsalves

1
@shabunc: Bulabildiğim en yakın :perl $curbuf->Count(satır sayısını döndürür)
sehe

22

showcmd( :h 'sc') Seçeneğini ayarlayın ve kaç satırın seçildiğini bilmek için hiçbir zaman hiçbir şey yazmanıza gerek kalmayacak - ilk başta, bu seçeneği ayarladığımı unuttuğum için, sorunuzun amacını anlamadım. ^^ '

Aksi takdirde, bu numarayı programlı olarak almak istiyorsanız, basitçe:

:echo line("'>") - line("'<") + 1

Bir aralık işlevi içinden, ile de elde edilebilir a:lastline-a:firstline+1. ( :h function-range-example)


8

'<,'>s///nbir karakter daha kısadır. :-)

Sadece görsel bir seçimdeki satır sayısını bilmek istersem, genellikle onu çekerim (vururum y). Seçim türüne bağlı olarak "5 satır çekildi" veya "5 satırlık blok çekildi" diyecektir.


2
Ben de genellikle bu amaç için çekiyorum. Ve bugün aniden yeni bir şey
öğrenmenin zamanının geldiğini anladım
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.