Esto es lo que obtengo de la documentación: \zs"comienza la parte resaltada" después de hacer coincidir la expresión regular anterior, y \@<="comienza la parte resaltada" después de hacer coincidir el átomo anterior . Pero no entiendo exactamente las sutilezas de esto, entonces, ¿alguien puede explicar cómo difieren un poco más en profundidad?
Esto es lo que me hizo sentir curiosidad: si corro
/\_s\zsnnoremap
es decir, seleccione nnoremapprecedido por un espacio o un inicio de línea (es decir, la nueva línea desde la línea anterior, de ahí la \_anterior s) y luego ejecute gnpara ingresar al Modo Visual y seleccione visualmente la siguiente coincidencia, por alguna razón solo la primera columna (es decir la primera nen nnoremap) se selecciona - a pesar del hecho de que toda la nnoremappalabra se destacó con el :hlsearchencendido.
Sin embargo, si en su lugar ejecuto la búsqueda
/\_s\@<=nnoremap
e intente gn, todo nnoremapestá correctamente seleccionado. ¿Qué podría estar pasando aquí? ¿Descubrí (me atrevo a decir) algún error oscuro?
:h patternspero mi memoria sugiere que las expresiones regulares están compuestas de átomos, si eso ayuda a explicar la diferencia.