Come posso eseguire una ricerca quando vim visualizza il contenuto usando "più" cercapersone?


17

Voglio vedere il valore di una variabile, quindi eseguo il comando

:let

Vim mostra i risultati di questo comando usando il --more--cercapersone.
Come posso cercare una frase, ad esempio html?
Ho cercato la pagina man per più cercapersone che dice che +/è usato per la ricerca ma non sembra funzionare, né lo è /per meno cercapersone.


1
AFAIK, è un comando interno di Vim - sembra 'di più', ma il programma non viene chiamato da Vim (prova: funziona anche in Windows). Puoi ancora scrivere l'inizio di un nome di variabile, quindi chiedere a Vim di completarlo (ad es. Con Ctrl-d).
VanLaser,

grazie, quando digito il nome della variabile - o in effetti praticamente qualsiasi cosa - vim non lo accetterà - lo richiede solo -- More -- SPACE/d/j: screen/page/line down, b/u/k: up, q: quitnella riga di comando.
the_velour_fog il

1
Scrivi :let quindi non premere Enter, ma Tabo Ctrl-d- avrai un elenco di variabili esistenti, visualizzate in stile "più" - ora premi Esc, scrivi qualche lettera, premi Tabo Ctrl-dancora ... e così via fino a trovare la variabile che volere. In realtà, per vedere il valore di una variabile, forse dovresti usare echo invece? (O set variable-name?per le opzioni)
VanLaser il

1
molto bello, sia il Ctrl-dtrucco che l'eco hanno funzionato bene, grazie!
the_velour_fog il

Risposte:


16

Questo non è il morecercapersone, questo è il cercapersone interno e minimalista di Vim che non ha capacità di ricerca.

Ma puoi usare il :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

... quindi usa i normali comandi di Vim.


oh molto bello, è un ottimo comando da sapere! grazie
the_velour_fog il

7
leggermente più semplice::redir @b|sil let|redir end
Christian Brabandt,

11

Vim 8 ha un execute()comando che ti permette di ottenere l'output di un comando. Per vederlo nel buffer corrente fai:

:put =execute('let')

Per Vim 7 è possibile utilizzare capture.vim . È un plugin che avvolge i comandi dalla risposta di @ romainl e ti consente di usarlo come

:Capture let

questo è buono a sapersi, grazie. Lo controllerò quando eseguo l'aggiornamento. Su vim 7 sto usando il plugin clam di steve losh per catturare grandi quantità di output in un nuovo buffer. funziona anche bene
the_velour_fog
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.