Como você converte todo o texto no Vim para minúsculo? Isso é possível?
Como você converte todo o texto no Vim para minúsculo? Isso é possível?
Respostas:
Se você realmente quer dizer letras maiúsculas , então não, isso não é possível - assim como não é possível converter texto em negrito ou itálico em qualquer editor de texto (em oposição ao processador de texto ). Se você deseja converter texto em minúsculas, crie um bloco visual e pressione u
(ou U
para converter em maiúsculas). Tilde ( ~
) no modo de comando inverte as maiúsculas e minúsculas do caractere sob o cursor.
Se você quiser ver todo o texto no Vim em letras maiúsculas, consulte a guifont
opção ou digite :set guifont=*
se o seu sabor do Vim suporta o seletor de fontes da GUI.
guu
minúscula uma linha e gu[motion]
minúscula o valor desse movimento. Da mesma forma, gUU
e gU[motion]
funciona da mesma maneira, apenas para maiúsculas.
Suponho que você queira o texto em minúsculas. A solução é bem simples:
ggVGu
Explicação:
U
de maiúsculas (por exemplo ggVGU
)
Semelhante à solução de mangledorf, mas mais curta e fácil para leigos
:%s/.*/\L&/g
:%s/.*/\L&
seria suficiente (não precisa da g
bandeira, pois .*
seleciona a linha inteira)
:%s/./\L&/g
, uma vez que / g / denota uma operação que é global para a linha. O que me deixa, no entanto, é o &
. Por que isso é necessário?
&
significa aqui what was matched by the pattern
, para que possa ser entendido da seguinte forma: substituir .*
por \Lowercase(what was matched by the pattern)
. Note-se que combinando em .
nível mundial é mais lenta do que a correspondência.*
Muitas maneiras de esfolar um gato ... aqui está o que eu acabei de postar sobre:
:%s/[A-Z]/\L&/g
Da mesma forma para maiúsculas:
:%s/[a-z]/\U&/g
Eu prefiro assim porque estou usando esse construct ( :%s/[pattern]/replace/g
) o tempo todo, então é mais natural.
:%s/./\U&/g
também funciona. Acontece que ele ignora números e caracteres que não são do alfabeto. O que me pega é o &
. Por que \ U (ou \ L) por si só não é suficiente? Podemos obter uma explicação para isso?
&
é um substituto para a sequência correspondente. Coloca em \U&
maiúscula a sequência correspondente para que possa ser usada para a substituição.
Para exemplos e mais informações, leia isto: http://vim.wikia.com/wiki/Switching_case_of_characters
&
. \ L e \ U fazem todo o sentido, mas por que é &
necessário?
usar ggguG
gg: vai para a primeira linha. gu: mude para minúsculas. G: vai para a última linha.
Normalmente Vu(ou VUem maiúsculas) é suficiente para transformar a linha inteira em minúscula, pois Vjá seleciona a linha inteira para aplicar a ação.
Tilda ( ~) altera o caso da letra individual , resultando em caso de camelo ou similar.
É realmente ótimo como o Vim tem muitos modos diferentes para lidar com várias ocasiões e como esses modos são organizados de maneira organizada.
Por exemplo, v- o modo visual verdadeiro e os modos de Vlinha visual relacionada e Ctrl+ Q- bloco visual (o que permite selecionar blocos, um ótimo recurso que alguns outros editores avançados também oferecem geralmente, mantendo pressionada a Alttecla e selecionando o texto).
Se você estiver rodando sob o sabor do Unix
:0,$!tr "[A-Z]" "[a-z]"
:%!tr A-Z a-z
!
indica um comando de shell externo, então $ man tr
(ao contrário de :help tr
) revela que tr
é para translate
.
:%0,$!tr [:upper:] [:lower:]