Где я могу получить список всех IMAPS по умолчанию плагина imaps.vim? - PullRequest
1 голос
/ 29 ноября 2011

В документации imaps.vim есть примеры, подобные этому

Например, когда вы наберете EFI в |insert-mode|, вы получите следующее:

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

Где я могу получить список всех братьев и сестер EFI? Каковы все другие сопоставления?

Ответы [ 3 ]

2 голосов
/ 29 ноября 2011
:verbose imap

выведет список всех отображений режима INSERT , доступных в Vim, и сообщит вам, где они установлены.

Но похоже, что плагин на самом деле использует пользовательский *Функция 1006 * вместо обычной imap или inoremap.Я не уверен, что приведенная выше команда поможет вам.

Я вижу кучу этих пользовательских отображений в ftplugin/latex-suite/bibtex.vim, возможно, их гораздо больше, разбросанных по ftpluginкаталог.

Я бы сделал что-то вроде :vimgrep IMAP *.vim<CR> в ftplugin, а затем :copen, чтобы получить доступ ко всем случаям.

0 голосов
/ 01 декабря 2011

Я нашел его в :help latex-suite, в Разделе 3.1 Отображения среды

Environment Mappings

0 голосов
/ 29 ноября 2011

В дополнение к 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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...