vim的“scriptnames”命令输出所有已加载的脚本。问题是我找不到任何实用的方法来过滤/搜索/查找它。我想在不必通过“眼睛暴力”查找的情况下查找一些脚本。
vim的“scriptnames”命令输出所有已加载的脚本。问题是我找不到任何实用的方法来过滤/搜索/查找它。我想在不必通过“眼睛暴力”查找的情况下查找一些脚本。
不存在 script
命令,只有 scriptencoding
和 scriptnames
命令(可以缩写为 scr
, 参考文献:h :scr
)。我认为您正在寻找的是 scriptnames
。
Vim 8 可以通过 :filter
过滤大多数命令的结果:
:filter /pattern/ scriptnames
(参见:h :filter
).
在较旧的Vim版本中,您可以在运行:scriptnames
之前将所有消息重定向到文件,然后取消重定向:
:redir >file
:scriptnames
:redir END
(参见:h :redir
命令). 或者,您可以将消息重定向到寄存器,然后将寄存器的内容粘贴到缓冲区:
:redir @a
:scriptnames
:redir END
:new
"aP
最后,Tim Pope的插件scriptease添加了一个命令:Scriptnames
,它运行:scriptnames
并将结果加载到快速修复列表中。
:scriptnames
可以缩写为 :script
。 - romainl:scr
。在旧版本的 Vim 中,这意味着它也可以缩写为 :scr
和 :scriptnames
之间的任何内容(包括 :script
),但现在不鼓励这样做。 - Sato Katsura:script
存在。在 Vim 脚本中不鼓励使用短名称,因为它们会使代码难以阅读,并且没有提供任何好处,但是在命令行上使用短名称则是非常鼓励的。 - romainl最近版本的vim中,我们有execute()
代替了:redir
。
因此,您可以使用:echo filter(split(execute('scritnames'), "\n"), 'v:val =~ "somepattern")
或者:new
+put=execute(':scriptnames')
+在缓冲区中搜索,就像您探索日志一样。
tmux
中运行vim,然后使用tmux
的搜索功能来搜索您想要的内容来实现解决方法。如果您正在终端仿真器中,则可以使用其搜索功能。 - sid-m