加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Vim:设置langmap = e; h打破supertab插件

发布时间:2020-12-15 22:56:06 所属栏目:安全 来源:网络整理
导读:我是Vim的新手并尝试设置一些插件.到目前为止,我已经安装了病原体,pyflakes和supertab.后者似乎不起作用;在插入模式下按Tab键只需写入字符串 Plug SuperTabForward. 问题只发生在我的vimrc中的以下行(为了更好地使用colemak布局导航): set langmap=hjklneiH
我是Vim的新手并尝试设置一些插件.到目前为止,我已经安装了病原体,pyflakes和supertab.后者似乎不起作用;在插入模式下按Tab键只需写入字符串< Plug> SuperTabForward.

问题只发生在我的vimrc中的以下行(为了更好地使用colemak布局导航):

set langmap=hjklneiHJKLNEI;kniejhlKNIEJHL

如果没有上述线路,它就可以正常工作.经过进一步的实验,我把它缩小到设置langmap = e; h.这条单行突破了supertab.

我对Vim完全缺乏经验,无法了解正在发生的事情或如何解决问题.即使是变通方法也会引起关注.

解决方法

我想出了一个解决方法:编辑supertab.vim,用< P> P替换< Plug> SuperTab的实例,这导致像< Plug> SuperTabForward这样的字符串成为< P> PForward.

我认为它有效,因为这些字符串不再包含set langmap = hjklneiHJKLNEI; kniejhlKNIEJHL中涉及的任何字母.有几个问题尚未解决. langmap被窃听了吗?对我来说,似乎明确存在选项允许映射只影响命令:

When you are typing text in Insert mode the characters are
inserted directly.  When in command mode the 'langmap' option takes
care of translating these special characters to the original meaning
of the key.  This means you don't have to change the keyboard mode to
be able to execute Normal mode commands.

对我来说没有任何意义,因此,在一个imap字符串中存在langmap映射的字符,即插入模式映射,会产生任何不同.如果是这样,它会随机破坏任何插件,例如使用长imap字符串的SuperTab.只是为了说明这是多么奇怪,如果我做imap没有,那么编写jo是必要的,以使其触发.我不知道它背后的逻辑如何运作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读