Yanıtlar:
Bir şeyi kaçırmıyorsam, Vim zaten bunu yapıyor. Fareyi kullanarak veya v
imleci yazıp hareket ettirerek bazı metni vurgularsam , ekranın altında
- GÖRSEL - 12
sağdaki sayı, vurgulanan karakterlerin sayısıdır. Bu sadece seçim tek bir satırdaysa çalışır, aksi halde satır sayısını gösterir.
Ayrıca g Ctrl-G, seçilen satır, sözcük ve bayt sayısını gösterecek bir metin ve tür bölgesi görsel olarak da seçebilirsiniz .
set showcmd
senin için vimrc
etkinleştirmek için.
Vim, neye ve nasıl görselleştirdiğinize bağlı olarak görselleştirilmiş metin için karakter sayımı ile satır sayımı arasında geçiş yapar (vim 7.4 Eylül 2015’e yamalı)
V will display line count
v$ will display character count
Birden fazla satır görselleştirirseniz, sadece satır sayısını gösterir.
g-CTRL-G displays 'byte count' which seems to be 'char count' +1 per line
v
seçim birden fazla satıra yayılırsa normal sayım karakter sayımından satır sayımına da geçer. Ancak g CTRL-G
iş güzel yapar.
:function VisualLength()
: exe 'normal "xy'
: echo "Visual: " . strlen(@x) . "\n"
: exe 'normal gv'
:endfunction
:map ,q "xy:call VisualLength()<CR>
İlk önce geçerli seçimi seçmelisiniz (x tamponuna)
Ardından bu tamponun uzunluğunu görüntülersiniz: strlen(@x)
( Durum satırında gösterilen - VISUAL - bunu engeller, bu yüzden yeni bir satır eklemek zorundayız)
Önceki görsel aralığını vurgulayın: gv
Bu görsel modun çizgi, karakter ya da blok modu olup olmadığını hesaba katmaz, ancak çoğu durumda bu yeterlidir.
Ekran görüntünüzden Windows’ta çalıştığınızı görüyorum, bu nedenle bu yanıt size pek yardımcı olmayabilir. Ama diğerleri için ...
Vim'in az kullanılmış (IMO) bir özelliği de dış komutların ağır kaldırma işlemini yapmasına izin vermektir.
Bu durumda, UNIX benzeri bir sistemdeyseniz, bunu wc
yapmak için komutu kullanabilirsiniz .
En basit yöntem, seçilen metni komutun çıktısıyla değiştirerek (seçili metin seçilerek):
:!wc
(daha sonra enter tuşuna basın).
Bu komut satırında şöyle gösterecektir:
'<,'>!wc
Bilgileri okuduktan sonra, u
başladığınız yere geri dönmek için geri alabilirsiniz.
Not: Bu işlem yalnızca tüm satırlarda yapılır . Kısmi çizgiler istiyorsanız, @ garyjohn en g_CTRL-G
iyi bahistir bence .
Çalıştırarak geri alma gereksinimini önleyebilirsiniz:
:w !wc
Bu, seçilen satırları komutun standart girişine "yazar" ve komutun çıktısı orijinal dokunulamayacak şekilde bırakılarak yeni bir geçici tamponda görüntülenir. Daha :help :write_c
fazla bilgi için bakınız .
Not: :write_c
Bilgileri aldım: /programming/1237780/vim-execute-shell-command-without-filtering
Şimdi, daha genel olarak:
Bu örnek wc
oldukça basit, ancak bunun nasıl güçlü bir yaklaşım olduğunu hayal edebilirsiniz. UNIX'in hali hazırda birçok metin işleme komutu vardır ve bunları Vimscript'e (yech) dokunmaya gerek kalmadan Vim içinde kolayca kullanabilirsiniz.
Ayrıca, stdin / stdout ile ilgilenen herhangi bir komut satırı programı artık sadece sizin terminalinizde değil, Vim'in içinde de size fayda sağlayabilir.
Kendimi, örneğin çalışan tidy
ve json-format
içimden çekip bulabildiğim dosyaları daha okunaklı hale getirmek için buluyorum .
Aynısını Windows'ta da yapabilirsiniz, ancak Windows bu kadar zengin bir komut setine sahip değildir. Olsa da, bu avantajlardan yararlanmak için her zaman GNUWin32'yi veya benzerlerini yükleyebilirsiniz .
Vimscript içinde programatik bir şekilde, bu seçim bir satır içinde sınırlı olduğunda benim için çalıştı:
let amount = virtcol("'>") - virtcol("'<")
(Kullanma virtcol(..)
yerine col(..)
ne zaman beklendiği gibi çalışır, öyle ki, :set ve=all
aktiftir.)