¿Cómo se convierte todo el texto en Vim a minúsculas? ¿Es posible?
¿Cómo se convierte todo el texto en Vim a minúsculas? ¿Es posible?
Respuestas:
Si realmente quiere decir mayúsculas pequeñas , entonces no, eso no es posible, al igual que no es posible convertir texto en negrita o cursiva en ningún editor de texto (a diferencia del procesador de textos ). Si desea convertir texto a minúsculas, cree un bloque visual y presione u
(o U
convertir a mayúsculas). Tilde ( ~
) en modo comando invierte el caso del carácter debajo del cursor.
Si desea ver todo el texto en Vim en mayúsculas, puede ver la guifont
opción o escribir :set guifont=*
si su sabor Vim admite el selector de fuente GUI.
guu
en minúscula una línea y en gu[motion]
minúscula el valor de ese movimiento de texto. Del mismo modo, gUU
y gU[motion]
funcionan de la misma manera, solo para mayúsculas.
Supongo que quiere minúsculas el texto. La solución es bastante simple:
ggVGu
Explicación:
U
para mayúsculas (p ggVGU
. ej. )
Similar a la solución de Mangledorf, pero más corta y amigable
:%s/.*/\L&/g
:%s/.*/\L&
sería suficiente (no necesita la g
bandera ya que .*
selecciona la línea completa)
:%s/./\L&/g
, ya que / g / denota una operación que es global para la línea. Sin embargo, lo que me atrapa es el &
. ¿Por qué es eso necesario?
&
significa aquí what was matched by the pattern
, por lo que puede entenderse de la siguiente manera: reemplazar .*
por \Lowercase(what was matched by the pattern)
. Tenga en cuenta que la coincidencia en .
todo el mundo es más lenta que la coincidencia.*
Muchas formas de pelar un gato ... esta es la forma en que acabo de publicar :
:%s/[A-Z]/\L&/g
Del mismo modo para mayúsculas:
:%s/[a-z]/\U&/g
Prefiero de esta manera porque estoy usando esta construcción ( :%s/[pattern]/replace/g
) todo el tiempo, así que es más natural.
:%s/./\U&/g
También funciona. Resulta que ignora los números y los caracteres que no son del alfabeto. Lo que me atrapa es el &
. ¿Por qué no es \ U (o \ L) por sí solo suficiente? ¿Podemos obtener una explicación para eso?
&
es un sustituto de la cadena coincidente. Por lo tanto, \U&
capitaliza la cadena coincidente para que pueda usarse para el reemplazo.
Para ver ejemplos y más información, lea esto: http://vim.wikia.com/wiki/Switching_case_of_characters
&
. \ L y \ U tienen mucho sentido, pero ¿por qué es &
necesario?
utilizar ggguG
gg: va a la primera línea. gu: cambiar a minúsculas. G: va a la última línea.
Por lo general Vu(o VUen mayúsculas) es suficiente para convertir toda la línea en minúsculas, Vya que selecciona toda la línea para aplicar la acción.
Tilda ( ~) cambia el caso de la letra individual , resultando en un caso de camello o similar.
Es realmente genial cómo Vim tiene muchos modos diferentes para lidiar con varias ocasiones y cómo esos modos están perfectamente organizados.
Por ejemplo, v- el modo visual verdadero y los modos relacionados V- línea visual, y Ctrl+ Q- bloque visual (lo que le permite seleccionar bloques, una gran característica que otros editores avanzados también ofrecen generalmente manteniendo presionada la Alttecla y seleccionando el texto).
Si estás corriendo bajo el sabor de Unix
:0,$!tr "[A-Z]" "[a-z]"
:%!tr A-Z a-z
!
indica un comando de shell externo, por lo que $ man tr
(a diferencia de :help tr
) revela que tr
es para translate
.
:%0,$!tr [:upper:] [:lower:]