Як я можу здійснити пошук, коли vim відображає вміст, використовуючи пейджер "more"?


17

Я хочу побачити значення змінної, тому запускаю команду

:let

Vim відображає результати цієї команди за допомогою --more--пейджера.
Як я можу шукати цю фразу, наприклад html?
Я переглянув сторінку чоловіка для більшого пейджера, який говорить +/, що використовується для пошуку, але, схоже, це не працює, /як і з меншого пейджера.


1
AFAIK, це внутрішня команда Vim - вона схожа на "більше", але програма не викликається Vim (доказ: вона працює і в Windows). Ви все ще можете написати ім’я змінної початку, ніж попросити Vim заповнити її (наприклад, за допомогою Ctrl-d).
VanLaser

дякую, коли я набираю ім'я змінної - або насправді майже все - vim звичайно не сприймає її - це просто запитує -- More -- SPACE/d/j: screen/page/line down, b/u/k: up, q: quitв командному рядку.
the_velour_fog

1
Напишіть, :let тоді не натискайте Enter, але Tabабо Ctrl-d- у вас буде список існуючих змінних, відображений у стилі "більше" - тепер натисніть Esc, напишіть кілька літер, натисніть Tabабо Ctrl-dзнову ... і так далі, поки не знайдете змінну хочу. Насправді, щоб побачити значення змінної, можливо, вам слід скористатися echo натомість? (Або set variable-name?для варіантів)
VanLaser

1
дуже круто, Ctrl-dі ехо-фокус працював чудово, дякую!
the_velour_fog

Відповіді:


16

Це не moreпейджер, це внутрішній та мінімалістичний пейджер Vim, який не має можливостей пошуку.

Але ви можете використовувати :redirкоманду:

: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

… Тоді використовуйте звичайні команди Vim.


Ой дуже круто, це чудова команда знати! дякую
the_velour_fog

7
трохи простіше::redir @b|sil let|redir end
Крістіан Брабандт

11

Vim 8 має execute()команду, яка дозволяє отримати вихід команди. Щоб побачити його в поточному буфері, виконайте такі дії:

:put =execute('let')

Для Vim 7 ви можете використовувати capture.vim . Це плагін, який загортає команди з відповіді @ romainl і дозволяє використовувати його як

:Capture let

це добре знати, дякую. Я перевірю це, коли оновлю. У vim 7 Im використовуючи плагін clave steve losh для збору великої кількості вихідних даних у новий буфер. він також працює добре
the_velour_fog
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.