Como posso realizar uma pesquisa quando o vim exibe conteúdo usando o pager "mais"?


17

Eu quero ver o valor de uma variável, então eu executo o comando

:let

O Vim exibe os resultados desse comando usando o --more--pager.
Como posso pesquisar por uma frase, por exemplo html?
Procurei na página de manual o pager mais que diz +/ser usado para pesquisa, mas parece não funcionar, nem /o pager menos.


1
AFAIK, é um comando interno do Vim - parece 'mais', mas o programa não é chamado pelo Vim (prova: funciona também no Windows). Você ainda pode escrever o início de um nome de variável e pedir ao Vim para completá-lo (por exemplo, com Ctrl-d).
VanLaser 5/12/15

obrigado, quando digito o nome da variável - ou, de fato, praticamente qualquer coisa - o vim não aceita - ele apenas solicita -- More -- SPACE/d/j: screen/page/line down, b/u/k: up, q: quitna linha de comando.
the_velour_fog

1
Escreva :let então não bata Enter, mas Tabou Ctrl-d- você terá uma lista de variáveis ​​existentes, exibida no estilo "mais" - agora bata Esc, escreva algumas letras, bata Tabou Ctrl-dnovamente ... e assim por diante até encontrar a variável que deseja. quer. Na verdade, para ver o valor de uma variável, talvez você deva usar echo ? (Ou set variable-name?para opções)
VanLaser

1
muito legal, tanto o Ctrl-dtruque quanto o eco funcionaram muito bem, obrigado!
the_velour_fog

Respostas:


16

Este não é o morepager, é o pager interno e minimalista do Vim, que não possui recursos de pesquisa.

Mas você pode usar o :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

… Use comandos regulares do Vim.


oh muito legal, isso é um ótimo comando para saber! obrigado
the_velour_fog

7
um pouco mais simples::redir @b|sil let|redir end
Christian Brabandt

11

O Vim 8 possui um execute()comando que permite obter a saída de um comando. Para vê-lo no buffer atual, faça:

:put =execute('let')

Para o Vim 7, você pode usar o capture.vim . É um plugin que agrupa os comandos da resposta do @ romainl e permite que você o use como

:Capture let

isso é bom saber, obrigado. Vou dar uma olhada quando atualizar. No vim 7, estou usando o plugin clam de steve losh para capturar grandes quantidades de saída em um novo buffer. funciona bem também
the_velour_fog
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.