Vim-latex 键扩展不会删除键入的键

Vim-latex 键扩展不会删除键入的键

我最近在 gvim 7.4 中安装了 vim-latex 插件。我按照文档进行了设置。一切正常。但我遇到了一个问题。当我输入扩展键组合时,组合键也会保留扩展结果。例如,按下`^应该会扩展为 \Hat{<++>}<++>。但它却扩展为

`^\Hat{<++>}<++>

对所有人来说都是如此。以下是一些例子

`D\Delta
SSS\subsection{}<++>
SPG\paragraph{}<++>
SSP\subparagraph{}<++>

我该如何解决这个问题,以便在扩展时省略组合键?

答案1

290对文件行进行的以下更改~/.vim/plugin/imaps.vim对我来说很有帮助:

return a:char . "\<c-g>u\<bs>" . bs . IMAP_PutTextWithMovement(rhs, phs, phe)

return bs . "\<c-g>u\<bs>" . IMAP_PutTextWithMovement(rhs, phs, phe)


我以前从未使用过 vim-script,因此,该解决方案可能仅适用于我特定的 vim 编译。

另外,我还没有测试通过 vim-latex IMAP 完成的所有映射,但a:char对于其中一些映射来说,这可能很重要。

答案2

只需添加set backspace=start.vimrc即可解决此问题。因为未设置<bs>撤消点时无法删除撤消点之前的字符。backspace

在文件中~/.vim/plugin/imaps.vim,函数末尾s:LookupCharacter有一些如下代码:

let bs = substitute(s:MultiByteStrpart(lhs, 1), ".", "\<bs>", "g")
" \<c-g>u inserts an undo point
return a:char . "\<c-g>u\<bs>" . bs . IMAP_PutTextWithMovement(rhs, phs, phe)

最后一行返回你输入的内容,然后使用 创建一个撤销点\<c-g>u,然后使用<bs>删除你输入的字符。但是,当backspace没有设置 时,<bs>无法删除撤销点之前输入的字符。

varbs用于backspace删除您输入的内容。

相关内容