[英]Vim command to introspectively list available commands
能够查看Vim命令列表和相关元数据(例如,每个命令的描述,是否具有别名等)将对我有很大帮助。
我知道,通过Vim插件,可以扩展命令列表,并且根据Vim编译时使用的选项,可以更改可用命令的列表。
我已经在网上进行了广泛的搜索,例如“ vim命令列出命令”,但是空手而归。 我能找到的唯一命令列表是静态文档,没有考虑您正在运行的Vim的版本(包括Neovim),已安装/启用的插件以及使用Vim编译的选项。
问题 :是否有一个Vim命令内省地列出Vim中所有可用的命令?
在searchInRuntime中,我具有以下函数,该函数列出了所有以前导文本(可以为空)开头的命令。 这是获取vim通过命令行完成功能扩展的老技巧- :h c_CTRL-A
。
" s:MatchingCommands(ArgLead) {{{3
" return the list of custom commands starting by {FirstLetters}
function! s:MatchingCommands(ArgLead)
silent! exe "norm! :".a:ArgLead."\<c-a>\"\<home>let\ cmds=\"\<cr>"
let cmds = substitute(cmds, '\s\+', '\n', 'g')
" for your purpose, split is probably more fit
return cmds
endfunction
请注意,它不知道命令的含义。 充其量,您可以通过execute('verbose command '.cmdname)
获取用户命令的定义( execute()
是一个非常新的函数)。
请注意,与execute('command')
,此解决方案还列出了标准命令,而不仅是用户定义的命令。
关于vim中可用的其他操作(以防您不只是在寻找vim 命令 ),尽管我们可以列出用户定义的映射(甚至可能甚至知道它们在依赖命名插件映射时也会这样做),但是没有列出dd
, J
...
了解如何查找命令并浏览内置的:help
(自动完成功能,使用Ctrl + A列出所有候选对象,等等); 它是全面的,还提供了许多技巧。 大多数(好的)插件还提供了自己的帮助页面,因此我认为这是对您问题的最佳回答。
不要尝试进行某种自省(因为一个评论者指出要“自嘲”); 而是使用Vim的现有功能。 您甚至可以编写自己的文档页面(在~/.vim/doc/*.txt)
; 那就是我的工作:从其他帮助位置收集提示和短片。 它提供了一个地方来记录一些没有自己的帮助页面的较旧的插件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.