Cuando estoy editando un documento de LaTeX en vim, muchas veces quiero buscar una frase. Debido a que tengo la configuración de LaTeX para ajustar las líneas, a veces la mitad de la frase estará en una línea mientras que la otra mitad está en la siguiente. En tal caso, la búsqueda no encuentra lo que estoy buscando. Así por ejemplo
blah blah blah hello
world blah blah blah
cuando /hello world
busco usando , no encuentro lo que estoy buscando. ¿Hay alguna forma rápida y fácil de modificar esta búsqueda para llevarme a donde quiero estar? O mejor aún, ¿una forma de decirle a vim que haga coincidir cualquier espacio en blanco (espacio, tabulación, nueva línea) con un espacio en la cadena de búsqueda?
hello\_s\+world
si puede haber más de un carácter de espacio en blanco entre ellos, por supuesto.Este problema se abordó en http://vim.wikia.com/wiki/Search_across_multiple_lines . Se incluye una función que puede hacer lo que necesito.
Luego puede hacer una búsqueda de varias líneas utilizando
:S hello world
y la convertiráhello\s\+world
y la buscará. Otra característica interesante es que esto también agregará esta nueva búsqueda al historial de búsqueda. Esto le permite regresar y modificar la búsqueda usandoq/
si es necesario. También se puede usar para hacer sustitución con:%s//new thing/g
. La desventaja de esto es que no se usaincsearch
si lo tiene habilitado.fuente
La forma en que lo sé no es difícil, pero es un poco tediosa. Reemplace cada espacio en su consulta de búsqueda con lo siguiente:
(Tenga en cuenta el espacio después de
[
.) Esta es una sintaxis coincidente de expresión regular. Desglosado, significa:[...]
significa coincidir con cualquiera de la lista de caracteres dentro de los corchetes.\t
es Tab\n
es Newline...\+
significa coincidir con uno o más de los anteriores.Para obtener más información sobre expresiones regulares, puede preguntar vim:
fuente
Yo personalmente usaría en
[ \t\n]*
lugar de espacios. Esto coincidirá con cero o más de '', pestaña y nueva línea. De esta manera, si una instancia de su patrón de búsqueda abarca un salto de línea, pero otra no, ambos coincidirán.fuente