En el modo normal de Vim, el 0
comando lo lleva a la primera columna de la línea y lo ^
lleva al inicio lógico de la línea (por ejemplo, el primer carácter que no es un espacio en blanco). En el mundo regex, ^
coincide con el primer personaje de la línea, espacio en blanco o no. ¿Vim tiene un patrón que se comporta como su comando '^', que coincide con el comienzo lógico de una línea?
20
Respuestas:
No hay un acceso directo para que coincida con el primer carácter que no sea un espacio en blanco en una línea, debe crear el patrón usted mismo, como:
Si no desea incluir el espacio en blanco en su coincidencia, debe usar una aserción de ancho cero, como:
No es exactamente bonito, pero al menos hace el trabajo.
fuente
Para que coincida con el primer carácter que no sea un espacio en blanco, simplemente usaría
\S
como lo hace normalmente.Si usa
^
una expresión regular en vim, coincidirá con el inicio real de la línea, incluso si contiene espacios en blanco.Por ejemplo, esta línea comienza con un espacio:
Este comando vim eliminará el espacio inicial:
resultando en lo siguiente:
Por lo tanto, la expresión regular se comportará como espera, incluso si el comando no lo hace.
fuente
^
operador (como todas las implementaciones sensatas de expresiones regulares), coincidirá con el primer carácter incluso si es un espacio en blanco.\S
hacer coincidir el primer carácter que no sea un espacio en blanco.\S
coincidirá con cualquier carácter que no sea un espacio en blanco. Para decirlo de otra manera, me pregunto si Vim tiene una forma abreviada de ancho cero para esto:^\W*\S
.