Vim'deki tüm metni küçük harfe nasıl dönüştürebilirsiniz? Hatta mümkün mü?
Vim'deki tüm metni küçük harfe nasıl dönüştürebilirsiniz? Hatta mümkün mü?
Yanıtlar:
Gerçekten küçük harfleri kastediyorsanız , hayır, bu mümkün değildir - tıpkı herhangi bir metin düzenleyicide ( kelime işlemcinin aksine) metni kalın veya italik olarak dönüştürmek mümkün olmadığından . Metni küçük harfe dönüştürmek istiyorsanız, görsel bir blok oluşturun ve u
(veya U
büyük harfe dönüştürmek için) tuşuna basın . ~
Komut modunda Tilde ( ), imlecin altındaki karakterin durumunu tersine çevirir.
Vim'deki tüm metni küçük harflerle görmek istiyorsanız, guifont
seçeneğe bakmak veya :set guifont=*
Vim lezzetinizin GUI yazı tipi seçicisini destekleyip desteklemediğini yazmak isteyebilirsiniz.
guu
bir satırı ve gu[motion]
o hareketin metnini küçük harcar. Aynı şekilde gUU
ve gU[motion]
sadece büyük harf için aynı şekilde çalışın.
Metni küçük harfle yazmak istediğinizi varsayalım. Çözüm oldukça basit:
ggVGu
Açıklama:
U
harfe için (örneğin ggVGU
)
Mangledorf'un çözümüne benzer, ancak daha kısa ve layman dostu
:%s/.*/\L&/g
:%s/.*/\L&
yeterli olacaktır ( tüm çizgiyi seçtiği için g
bayrağa gerek yoktur .*
)
:%s/./\L&/g
/ g / satır için küresel bir işlemi gösterir. Ama beni yakalayan şey &
. Bu neden gerekli?
&
Burada açılımı what was matched by the pattern
değiştirin: aşağıdaki gibi anlaşılabilir, böylece .*
tarafından \Lowercase(what was matched by the pattern)
. Not eşleşen o .
küresel yavaş eşleştirme daha.*
Bir kediyi ciltlemenin birçok yolu ... işte yeni yayınladığım yol :
:%s/[A-Z]/\L&/g
Aynı şekilde büyük harf için:
:%s/[a-z]/\U&/g
Bu yöntemi tercih ediyorum çünkü bu yapıyı ( :%s/[pattern]/replace/g
) her zaman kullanıyorum, bu yüzden daha doğal.
:%s/./\U&/g
ayrıca çalışır. Sayıları ve alfabe dışı karakterleri yok sayar. Beni yakalayan şey &
. Neden \ U (veya \ L) tek başına yeterli değil? Bunun için bir açıklama alabilir miyiz?
&
eşleşen dize için bir stand-in'dir. Böylece \U&
eşleşen dizeyi büyük harfle değiştirir, böylece değiştirme için kullanılabilir.
Örnekler ve daha fazla bilgi için lütfen şunu okuyun: http://vim.wikia.com/wiki/Switching_case_of_characters
&
. \ L ve \ U mükemmel bir anlam ifade ediyor, ama neden &
gerekli?
kullanım ggguG
gg: ilk satıra gider. gu: küçük harfe değiştir. G: son satıra gider.
Genellikle Vu(veya VUbüyük harf için), Veylemin uygulanacağı tüm satırı zaten seçtiği için tüm satırı küçük harfe çevirmek için yeterlidir .
Tilda ( ~) tek tek harflerin büyüklüğünü değiştirerek deve veya benzeri bir harfle sonuçlanır.
Vim'in çeşitli durumlar için nasıl birçok farklı moda sahip olduğu ve bu modların düzgün bir şekilde nasıl düzenlendiği gerçekten harika.
Örneğin, v- gerçek görsel mod ve ilgili V- görsel çizgi ve Ctrl+ Q- görsel blok modları (blokları seçmenize izin veren, bazı diğer gelişmiş editörlerin genellikle Alttuşunu basılı tutarak ve metni seçerek sunduğu harika bir özellik ).
Unix lezzeti altında koşuyorsanız
:0,$!tr "[A-Z]" "[a-z]"
:%!tr A-Z a-z
!
Böylece bir dış kabuk komutu göstermektedir $ man tr
(şekilde karşı :help tr
) olduğunu gösterir tr
içindir translate
.
:%0,$!tr [:upper:] [:lower:]