Estoy mirando los comandos vim help quickref para mover el cursor. Las siguientes líneas me confunden porque encuentro que ambas funcionan igual. ¿Podría alguien explicarme la diferencia con un ejemplo?
N w N words forward
N W N blank-separated WORDS forward
La misma pregunta es verdadera para e y E también.
En realidad es bastante simple,
w
simplemente salta a la siguiente palabra, pero cualquier tipo de puntuación o espacio en blanco divide las palabras.W
es como el comando de la siguiente palabra de fuerza industrial, las palabras solo están delimitadas por espacios en blanco, ya sea tabulación, espacio o nueva línea.w
también se detiene en la puntuación delimitadora, en caso de que quiera lidiar con eso.Encuentro la diferencia más útil con los nombres de host:
birdman.cartoons.fictional.com # Fictional host
Con
w
, se detiene en cada parte del nombre de host y los puntos.W
simplemente omite todo el nombre de host y pasa al#
. Ambos también se aplican ad
yc
para eliminar y cambiar palabras.Si se coloca al comienzo de la línea anterior, si desea reemplazar
birdman.cartoons
con otra cosa, usaría3cw
para reemplazar las dos primeras partes y el punto en el medio. No podría hacerloW
sin volver a escribir todo el nombre de host.fuente
Es una diferencia que se entiende mejor al considerar cómo la puntuación puede afectar el concepto de Vim de lo que delimita una palabra.
En el caso de este texto de ejemplo:
wsaltará felizmente a la primera letra de cada palabra en la primera línea, ya que solo hay espacio para negociar. Fallará gravemente en la línea 2 con la puntuación, desglosándose en las primeras letras de cada palabra y las comas y guiones. Para pasar de una palabra a otra en la línea 2, necesitaría usar Shiftw1 .
1. Incluso entonces, Vim ve "es-nota-coma" como una sola palabra.
fuente
La diferencia se puede encontrar en las páginas de ayuda interna de vim. Primero obtengamos una descripción de w y W con
:help
w o:help W
:Ahora queremos saber cuáles son las definiciones de palabra y PALABRA. Busque el manual nuevamente con
:help word
y:help WORD
, los encontramos.a sequence of letters, digits and underscores
, oa sequence of other non-blank characters, separated with white space
(espacios, tabulaciones,). Esto se puede cambiar con la opción 'iskeyword'. Una línea vacía también se considera una palabra.a sequence of non-blank characters, separated with white space
. Una línea vacía también se considera una PALABRA.fuente