在 Vim 中使用 latex-suite 映射 <C-j> 的问题

Posted

技术标签:

【中文标题】在 Vim 中使用 latex-suite 映射 <C-j> 的问题【英文标题】:Trouble mapping <C-j> in Vim with latex-suite 【发布时间】:2012-01-08 10:02:35 【问题描述】:

我想映射&lt;C-j&gt; 以切换到当前窗口下方的下一个窗口

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

但是,它会进入插入模式,而不是移动下面的窗口。为什么?

尝试的解决方案:

我安装了latex-suite。所以我尝试查询&lt;C-j&gt;映射到什么

:map <C-j>

我得到以下输出:

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

这意味着我应该更改&lt;Plug&gt;IMAP_JumpForward 的映射。我阅读了一下,发现它与 &lt;++&gt; 占位符有关,您可以在插入模式下使用 &lt;C-j&gt; 跳转到。因此,根据我的阅读,我了解到我可以使用 .vimrc 中的以下行更改映射:

imap <C-space> <Plug>IMAP_JumpForward

但不,它不像 &lt;C-j&gt; 过去那样工作。我会尽力说明。我输入以下内容(_ 代表光标):

\documentclass_

然后我得到

\documentclass_<++>

然后我尝试输入一些文字

\documentclassarticle_<++>

所以现在我按&lt;C-space&gt;。这就是发生的事情:它退出插入模式,我将处于以下情况:

\documentclassarticl_e<++>

问题总结:

    map &lt;C-j&gt; &lt;C-w&gt;j 之后,&lt;C-j&gt; 进入插入模式。 在imap &lt;C-space&gt; &lt;Plug&gt;IMAP_JumpForward 之后,&lt;C-space&gt; 不会跳转到下一个&lt;++&gt; 占位符。它退出插入模式,光标后退一个字符。

怎么了?我错过了什么?

【问题讨论】:

【参考方案1】:

我建议两件事:

    首先,定位映射:

    nnoremap <C-j> <C-w>j
    

    其次,通过执行找出哪些映射会干扰(以及它们来自何处)

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

另请参阅:map:imap:vmap:noremap 等。

【讨论】:

verbose map &lt;C-j&gt; 说它是从~/.vim/plugin/imaps.vim 设置的。正确的。我认为.vimrc 是最后一个脚本?为什么imaps.vim.vimrc 中覆盖我的nnoremaps?【参考方案2】:

我也遇到过同样的问题;对我来说,它的行为很奇怪,因为来自 vim-latex 的 &lt;C-j&gt; 被映射为正常的视觉和插入模式。在看到这个答案并检查 '\bundle\vim-latex\plugin' 目录中的 'imaps.vim' 文件后,我有种感觉。我将以下代码放在我的 vimrc 中,它似乎可以工作。

imap <C-space> <Plug>IMAP_JumpForward
nmap <C-space> <Plug>IMAP_JumpForward
vmap <C-space> <Plug>IMAP_JumpForward

【讨论】:

我遇到的唯一对我有用的解决方案。谢谢! :)【参考方案3】:

我在这里找到了解决方案:How to debug vim mapping overlaps?

你应该使用

nnoremap <SID>I_won’t_ever_type_this <Plug>IMAP_JumpForward

所以 vim-latex 的 imaps.vim 不会重新映射。通过映射到更好的东西,您仍然可以拥有该功能。

【讨论】:

以上是关于在 Vim 中使用 latex-suite 映射 <C-j> 的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在VIM中映射CAPS LOCK键?

映射大写仅锁定在vim中?

如何在 Pycharm 中映射 <CTRL-R> 以供 vim 使用

Vim 简单映射

在 vim 中重新映射修饰符键

在 KDE Konsole 中,vim 映射 F1-F5 不起作用 [关闭]