当vim使用“更多”寻呼机显示内容时,如何执行搜索?


17

我想查看变量的值,所以我运行命令

:let

Vim使用--more--寻呼机显示该命令的结果。
如何在其中搜索短语,例如html
我已经在手册页中查找了+/用于搜索的更多寻呼机,但它似乎不起作用,也不像/较少的寻呼机那样工作。


1
AFAIK,它是Vim的内部命令-看起来像“更多”,但Vim不会调用该程序(证明:它也适用于Windows)。您仍然可以写一个变量名的开头,而不是要求Vim完成它(例如,使用Ctrl-d)。
VanLaser 2015年

谢谢,当我键入变量名时-或实际上输入了几乎所有内容-vim不会接受它-它仅-- More -- SPACE/d/j: screen/page/line down, b/u/k: up, q: quit在命令行中提示输入。
the_velour_fog

1
:let 然后不命中Enter,但是- TabCtrl-d-您将以“更多”的样式显示现有变量的列表-现在命中Esc,写几个字母,命中TabCtrl-d再次...依此类推,直到找到变量为止想。实际上,要查看变量的值,也许应该echo 改用?(或set variable-name?用于选项)
VanLaser

1
非常酷,Ctrl-d和回显技巧都很好,谢谢!
the_velour_fog 2015年

Answers:


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 2015年

7
稍微简单一点::redir @b|sil let|redir end
Christian Brabandt 2015年

11

Vim 8有一个execute()命令,可让您获取命令的输出。要将其查看到当前缓冲区,请执行以下操作:

:put =execute('let')

对于Vim 7,可以使用capture.vim。它是一个插件,包装了@romainl的答案中的命令,并允许您将其用作

:Capture let

多数民众赞成在知道,谢谢。升级时我会检查一下。在vim 7 Im上,使用steve losh的clam插件将大量输出捕获到新缓冲区中。它也很好用
the_velour_fog
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.