¿Cómo puedo realizar una búsqueda cuando vim muestra contenido usando el "localizador" más?


17

Quiero ver el valor de una variable, así que ejecuto el comando

:let

Vim muestra los resultados de este comando utilizando el --more--buscapersonas.
¿Cómo puedo buscar una frase, por ejemplo html?
He buscado en la página del manual más buscapersonas que dice que +/se usa para la búsqueda, pero no parece funcionar, tampoco lo hace /según el busca menos.


1
AFAIK, es un comando interno de Vim : parece 'más', pero Vim no llama al programa (prueba: también funciona en Windows). Todavía puede escribir el comienzo de un nombre de variable, que pedirle a Vim que lo complete (por ejemplo, con Ctrl-d).
VanLaser

gracias, cuando escribo el nombre de la variable, o de hecho casi cualquier cosa, vim no lo aceptará, solo aparece -- More -- SPACE/d/j: screen/page/line down, b/u/k: up, q: quiten la línea de comandos.
the_velour_fog

1
Escriba :let y no presione Enter, pero Tabo Ctrl-d- tendrá una lista de variables existentes, que se muestra en estilo "más" - ahora presione Esc, escriba algunas letras, presione Tabo de Ctrl-dnuevo ... y así sucesivamente hasta que encuentre la variable que desear. En realidad, para ver el valor de una variable, ¿quizás debería usar echo en su lugar? (O set variable-name?para opciones)
VanLaser

1
genial, tanto el Ctrl-dtruco como el eco funcionaron bien, ¡gracias!
the_velour_fog

Respuestas:


16

Este no es el morelocalizador, este es el localizador interno y minimalista de Vim que no tiene capacidades de búsqueda.

Pero puedes usar el :redircomando:

:redir @a    redirect output of following commands to register a
:let         list every current option and its value
G<CR>        go straight to the end of the listing and make it disappear
:redir END   stop redirection
:tabnew      open a new buffer in a new window in a new tab page
"ap          put from register a

… Luego usa los comandos regulares de Vim.


¡Oh, genial, es un gran comando para saber! gracias
the_velour_fog

77
un poco más simple::redir @b|sil let|redir end
Christian Brabandt

11

Vim 8 tiene un execute()comando que le permite obtener la salida de un comando. Para verlo en el búfer actual, haga lo siguiente:

:put =execute('let')

Para Vim 7 puedes usar capture.vim . Es un complemento que envuelve los comandos de la respuesta de @ romainl y le permite usarlo como

:Capture let

Es bueno saberlo, gracias. Lo comprobaré cuando actualice. En vim 7 estoy usando el complemento de almeja steve losh para capturar grandes cantidades de salida en un nuevo búfer. funciona bien también
the_velour_fog
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.