Диагностика неисправностейв Vim с латексом - PullRequest
8 голосов
/ 29 ноября 2011

Я хотел отобразить <C-j>, чтобы перейти к следующему окну под текущим

map <C-j> <C-w>j

Однако он переходит в режим вставки вместо перемещения окна ниже. Почему?

Решение предпринято:

У меня установлено latex-suite. Поэтому я попытался запросить, что <C-j> сопоставлено с

:map <C-j>

И я получаю следующий вывод:

v  <NL>          <Plug>IMAP_JumpForward
n  <NL>          <Plug>IMAP_JumpForward
o  <NL>          <C-W>j

Это означает, что я должен изменить отображение <Plug>IMAP_JumpForward. Я немного прочитал и обнаружил, что это связано с <++> заполнителями, к которым вы можете перейти с помощью <C-j> в режиме вставки. Итак, основываясь на моем чтении, я узнал, что могу изменить отображение, используя следующую строку в .vimrc:

imap <C-space> <Plug>IMAP_JumpForward

Но нет, это не работает, как раньше <C-j>. Я постараюсь проиллюстрировать. Я набираю следующее (_ представляет курсор):

\documentclass{}_

Тогда я получу

\documentclass{_}<++>

Затем я пытаюсь набрать какой-нибудь текст

\documentclass{article_}<++>

Так что теперь я нажимаю <C-space>. Вот что происходит: он выходит из режима вставки, и я буду в следующей ситуации:

\documentclass{articl_e}<++>

Краткое описание проблемы:

  1. После map <C-j> <C-w>j, <C-j> переходит в режим вставки.
  2. После imap <C-space> <Plug>IMAP_JumpForward, <C-space> не переходит к следующему <++> заполнителю. Он выходит из режима вставки и курсор выполняет резервное копирование одного символа.

В чем дело? Что-то, что я пропустил?

Ответы [ 3 ]

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

Я предлагаю две вещи:

  1. во-первых, нацеливайтесь на сопоставления:

    nnoremap <C-j> <C-w>j
    
  2. во-вторых, выясните, какие сопоставления мешают (иоткуда они берутся):

    verbose nmap <C-j>     
    verbose nmap <C-w>
    verbose nmap j
    

см. также :map, :imap, :vmap, :noremap и т. д.

2 голосов
/ 15 января 2016

У меня была такая же проблема; для меня это было странно, так как <C-j> из vim-latex отображается для обычного визуального режима и режима вставки. Я чувствовал, что, увидев этот ответ и проверив файл 'imaps.vim' в каталоге '\ bundle \ vim-latex \ plugin'. Я поместил следующий код в мой vimrc, и он, кажется, работает.

imap <C-space> <Plug>IMAP_JumpForward
nmap <C-space> <Plug>IMAP_JumpForward
vmap <C-space> <Plug>IMAP_JumpForward
2 голосов
/ 04 февраля 2012

Я нашел решение здесь: Как отладить перекрытия vim mapping?

Вы должны использовать

nnoremap <SID>I_won’t_ever_type_this <Plug>IMAP_JumpForward

Так что imaps.vim из vim-latex donне переназначать.Вы все еще можете получить функциональность, сопоставляя что-то лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...