从哪里可以获得IMAPS.vim插件的所有默认IMAP列表?
从哪里可以获得IMAPS.vim插件的所有默认IMAP列表?,vim,mapping,Vim,Mapping,imaps.vim文档中提到了类似的示例 例如,当您在|插入模式中键入EFI时,您将得到以下信息: \begin{figure}[h] \中心线{\psfig{figure=} \标题{} \标签{图:} \结束{图} 我在哪里可以获得EFI的所有兄弟姐妹的列表?其他映射是什么 :verbose imap 将输出Vim中可用的所有插入模式映射的列表,并告诉您它们的设置位置 但该插件似乎实际上使用了一个自定义的IMAP()函数,而不是常规的IMAP或inoremap。我不确定上面的命令会有什么
imaps.vim
文档中提到了类似的示例
例如,当您在|插入模式
中键入EFI
时,您将得到以下信息:
\begin{figure}[h]
\中心线{\psfig{figure=}
\标题{}
\标签{图:}
\结束{图}
我在哪里可以获得EFI
的所有兄弟姐妹的列表?其他映射是什么
:verbose imap
将输出Vim中可用的所有插入模式映射的列表,并告诉您它们的设置位置
但该插件似乎实际上使用了一个自定义的IMAP()
函数,而不是常规的IMAP
或inoremap
。我不确定上面的命令会有什么帮助
我在中看到了一些自定义映射,在ftplugin
目录中可能有更多的映射
我会在
ftplugin
中执行类似:vimgrep IMAP*.vim
的操作,然后:copen
访问所有事件。除了vimgrep之外,您还可以分析IMAP()函数的源代码。这是一个小函数,从它的代码中可以看到它将信息保存到脚本局部变量中,映射右侧的是s:Map.*
,而左侧的是s:LHS.*
。所以你应该这么做
" Arguments do not matter, all you need is to start a debugger
" with appropriate context
debug call IMAP(0,0,0)
" step into IMAP function
s
" Generate and show a table filetype - list of mapping LHSs
echo "Ft\tLHSs\n".join(map(items(filter(copy(s:), 'v:key[:3] is# "LHS_"')), 'v:val[0][4:(stridx(v:val[0], "_", 4)-1)]."\t".join(split(v:val[1], "\\\\|"))'), "\n")
" Interrupt function so that it won’t do anything
q
" Note that in debugger “q” command is doing an interrupt, not quits vim.
我在第3.1节“环境映射”中的
:help latex suite
中找到了它
imaps.vim?我想你是这个意思吧。您在哪里找到引用的行/文档?@ldigas,就在这里:注意措辞
verbose map
永远不会列出所有键盘映射,它只会列出普通、可视和操作员挂起的映射,而从函数名称可以明显看出TS需要插入模式映射。感谢ZyX,我已经用显示插入模式映射的:verbose imap
修改了我的答案。
" Arguments do not matter, all you need is to start a debugger
" with appropriate context
debug call IMAP(0,0,0)
" step into IMAP function
s
" Generate and show a table filetype - list of mapping LHSs
echo "Ft\tLHSs\n".join(map(items(filter(copy(s:), 'v:key[:3] is# "LHS_"')), 'v:val[0][4:(stridx(v:val[0], "_", 4)-1)]."\t".join(split(v:val[1], "\\\\|"))'), "\n")
" Interrupt function so that it won’t do anything
q
" Note that in debugger “q” command is doing an interrupt, not quits vim.