Bagaimana Anda mengonversi semua teks dalam Vim menjadi huruf kecil? Apakah itu mungkin?
Bagaimana Anda mengonversi semua teks dalam Vim menjadi huruf kecil? Apakah itu mungkin?
Jawaban:
Jika Anda benar-benar bermaksud huruf kecil , maka tidak, itu tidak mungkin - seperti halnya tidak mungkin untuk mengubah teks menjadi tebal atau miring dalam editor teks apa pun (sebagai lawan pengolah kata ). Jika Anda ingin mengonversi teks menjadi huruf kecil, buat blok visual dan tekan u
(atau U
untuk mengonversi menjadi huruf besar). Tilde ( ~
) dalam mode perintah membalikkan huruf di bawah kursor.
Jika Anda ingin melihat semua teks dalam Vim dalam huruf kecil, Anda mungkin ingin melihat guifont
opsi, atau mengetik :set guifont=*
jika rasa Vim Anda mendukung pemilih font GUI.
guu
akan mengurangi satu baris, dan gu[motion]
akan mengurangi nilai teks dari gerak itu. Demikian juga, gUU
dan gU[motion]
bekerja dengan cara yang sama, hanya untuk huruf besar.
Saya menganggap Anda ingin menggunakan huruf kecil teks. Solusinya cukup sederhana:
ggVGu
Penjelasan:
U
untuk huruf besar (mis. ggVGU
)
Mirip dengan solusi mangledorf, tetapi lebih pendek dan ramah orang awam
:%s/.*/\L&/g
:%s/.*/\L&
akan cukup (tidak perlu g
bendera karena .*
memilih seluruh baris)
:%s/./\L&/g
, karena / g / menunjukkan operasi yang bersifat global untuk saluran. Apa yang membuat saya, adalah &
. Mengapa itu perlu?
&
berdiri di sini untuk what was matched by the pattern
, sehingga dapat dipahami sebagai berikut: ganti .*
dengan \Lowercase(what was matched by the pattern)
. Perhatikan bahwa pencocokan pada .
global lebih lambat daripada pencocokan.*
Banyak cara menguliti kucing ... inilah cara yang baru saja saya posting :
:%s/[A-Z]/\L&/g
Demikian juga untuk huruf besar:
:%s/[a-z]/\U&/g
Saya lebih suka cara ini karena saya menggunakan konstruk ini ( :%s/[pattern]/replace/g
) sepanjang waktu sehingga lebih alami.
:%s/./\U&/g
juga berfungsi. Ternyata itu mengabaikan angka dan karakter non-alfabet. Apa yang membuat saya adalah &
. Mengapa \ U (atau \ L) dengan sendirinya tidak cukup? Bisakah kita mendapatkan penjelasan untuk itu?
&
adalah stand-in untuk string yang cocok. Jadi \U&
kapitalisasi string yang cocok sehingga dapat digunakan untuk penggantian.
Untuk contoh dan info lebih lanjut silakan baca ini: http://vim.wikia.com/wiki/Switching_case_of_characters
&
. \ L dan \ U masuk akal, tetapi mengapa itu &
perlu?
menggunakan ggguG
gg: pergi ke baris pertama. gu: ubah menjadi huruf kecil. G: pergi ke baris terakhir.
Biasanya Vu(atau VUuntuk huruf besar) sudah cukup untuk mengubah seluruh baris menjadi huruf kecilV sudah memilih seluruh baris untuk menerapkan tindakan melawan.
Tilda ( ~) mengubah kasus huruf individual , menghasilkan kasing unta atau serupa.
Sungguh luar biasa bagaimana Vim memiliki banyak mode yang berbeda untuk menangani berbagai kesempatan dan bagaimana mode-mode itu disusun dengan rapi.
Sebagai contoh, v- mode visual yang sebenarnya, dan yang terkait V- garis visual, dan Ctrl+ Q- mode blok visual (yang memungkinkan Anda untuk memilih blok, fitur hebat yang juga ditawarkan oleh beberapa editor tingkat lanjut lainnya biasanya dengan menahan Alttombol dan memilih teks).
Jika Anda menjalankan di bawah rasa Unix
:0,$!tr "[A-Z]" "[a-z]"
:%!tr A-Z a-z
!
menunjukkan perintah eksternal shell, sehingga $ man tr
(sebagai lawan :help tr
) mengungkapkan bahwa tr
bagi translate
.
:%0,$!tr [:upper:] [:lower:]