我在哪里可以获得imaps.vim插件的所有默认IMAPS列表?

时间:2011-11-29 02:08:36

标签: vim mapping

imaps.vim文档提到了像这样的例子

  

例如,当您在EFI中输入|insert-mode|时,您将获得以下信息:

\begin{figure}[h]
\centerline{\psfig{figure=<+eps file+>}}
\caption{<+caption text+>}
\label{fig:<+label+>}
\end{figure}<++>

我在哪里可以获得EFI的所有兄弟姐妹的列表?所有其他映射是什么?

3 个答案:

答案 0 :(得分:2)

:verbose imap

将输出Vim中可用的所有 INSERT 模式映射的列表,并告诉您它们的设置位置。

但似乎该插件实际上使用的是自定义IMAP()功能,而不是常规imapinoremap。我不确定上面的命令会有什么帮助。

我在ftplugin/latex-suite/bibtex.vim中看到了一堆这样的自定义映射,ftplugin目录周围可能还有更多的自定义映射。

我会在:vimgrep IMAP *.vim<CR>然后ftplugin执行:copen之类的操作来访问所有出现的内容。

答案 1 :(得分:0)

除了v​​imgrep,您还可以分析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.

答案 2 :(得分:0)

我在:help latex-suite中的3.1节环境映射

中找到了它

Environment Mappings