Comment puis-je effectuer une recherche lorsque vim affiche du contenu à l'aide d'un téléavertisseur «plus»?


17

Je veux voir la valeur d'une variable, alors j'exécute la commande

:let

Vim affiche les résultats de cette commande à l'aide du --more--pager.
Comment puis-je rechercher une phrase, par exemple html?
J'ai regardé la page de manuel pour le plus de pager qui dit +/est utilisé pour la recherche mais cela ne semble pas fonctionner, ni /pour le moins de pager.


1
AFAIK, c'est une commande interne de Vim - ça ressemble à 'plus', mais le programme n'est pas appelé par Vim (preuve: ça marche aussi sous Windows). Vous pouvez toujours écrire le début d'un nom de variable, puis demander à Vim de le compléter (par exemple avec Ctrl-d).
VanLaser

merci, quand je tape le nom de la variable - ou en fait à peu près n'importe quoi - vim ne l'acceptera pas - il invite juste avec -- More -- SPACE/d/j: screen/page/line down, b/u/k: up, q: quitdans la ligne de commande.
the_velour_fog

1
Écrivez :let puis ne frappez pas Enter, mais Tabou Ctrl-d- vous aurez une liste des variables existantes, affichées dans un style "plus" - maintenant frappez Esc, écrivez quelques lettres, frappez Tabou Ctrl-dencore ... et ainsi de suite jusqu'à ce que vous trouviez la variable que vous vouloir. En fait, pour voir la valeur d'une variable, vous devriez peut-être utiliser à la echo place? (Ou set variable-name?pour les options)
VanLaser

1
très cool, l' Ctrl-dastuce et l'écho ont bien fonctionné, merci!
the_velour_fog

Réponses:


16

Ce n'est pas le morepager, c'est le pager interne et minimaliste de Vim qui n'a pas de capacités de recherche.

Mais vous pouvez utiliser la :redircommande:

: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

… Puis utilisez les commandes Vim normales.


oh très cool, c'est une super commande à savoir! merci
the_velour_fog

7
un peu plus simple::redir @b|sil let|redir end
Christian Brabandt

11

Vim 8 possède une execute()commande qui vous permet d'obtenir la sortie d'une commande. Pour le voir dans le tampon actuel, procédez comme suit:

:put =execute('let')

Pour Vim 7, vous pouvez utiliser capture.vim . C'est un plugin qui encapsule les commandes de la réponse de @ romainl et vous permet de l'utiliser comme

:Capture let

c'est bon à savoir, merci. Je le vérifierai lors de la mise à niveau. On vim 7 J'utilise le plugin clam de steve losh pour capturer de grandes quantités de sortie dans un nouveau tampon. ça marche bien aussi
the_velour_fog
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.