展开全部
一般是可以的。
有些插件的文档里可有写如何更改。这种情况,按照文档指示的方法是最好的。
如果不是这种情况,简单的方法是,再映射一个键到原来的键映射上。
比如原来的键是 ,x 而你喜欢用 \x 来做这件事,那么:
map \x ,x
有时就可以工作的很好。因为 vim 支持递归映射,这样 \x 解释成 ,x 后它映射的是什么,还会去继续解释。(凡事都有两面性,因为递归映射有时会导致其它问题。因此就还有一个 noremap 的命令,告诉 vim 不要递归映射。)
如果这不出什么问题,就最好了。但如果楼主的本意是想解放 ,x 移作它用。那么这个方法就不行。
此时你可以在 vim 里执行:
:map ,x
这样 vim 会把 ,x 现在映射到哪里给显示出来(可能有很多个,因为在不同模式下,同一个键可以映射到不同的功能)。楼主记住它们,然后在 .vimrc 里把 \x 原封不动的映射到 ,x 本来映射的功能上。然后 ,x 就可以解放移作它用了。
如果您看不懂 :map ,x 回显的内容。执行:
:redir @+
:map ,x
:redir END
这会把命令显示的结果复制到剪切板。然后您把内容粘贴到这里追问,我会把下一步应该如何做告诉您。
根据插件开发的质量,在 .vimrc 里定义的映射在先,插件加载很可能在后,因此如果先定义了 ,x 的功能有可能会在插件加载之后被覆盖。
开发过硬的插件,应该会先查是否已经有到指定功能的映射,没有才会再做映射。而且映射之前,也会再查一次,它想指定的映射键是不是已经被用作其它功能。
如果是低质量的插件,那就得去改代码了。更麻烦。
这里 ,x \x 等只是为了说明方便。请您替换成您自己需要的按键。
有些插件的文档里可有写如何更改。这种情况,按照文档指示的方法是最好的。
如果不是这种情况,简单的方法是,再映射一个键到原来的键映射上。
比如原来的键是 ,x 而你喜欢用 \x 来做这件事,那么:
map \x ,x
有时就可以工作的很好。因为 vim 支持递归映射,这样 \x 解释成 ,x 后它映射的是什么,还会去继续解释。(凡事都有两面性,因为递归映射有时会导致其它问题。因此就还有一个 noremap 的命令,告诉 vim 不要递归映射。)
如果这不出什么问题,就最好了。但如果楼主的本意是想解放 ,x 移作它用。那么这个方法就不行。
此时你可以在 vim 里执行:
:map ,x
这样 vim 会把 ,x 现在映射到哪里给显示出来(可能有很多个,因为在不同模式下,同一个键可以映射到不同的功能)。楼主记住它们,然后在 .vimrc 里把 \x 原封不动的映射到 ,x 本来映射的功能上。然后 ,x 就可以解放移作它用了。
如果您看不懂 :map ,x 回显的内容。执行:
:redir @+
:map ,x
:redir END
这会把命令显示的结果复制到剪切板。然后您把内容粘贴到这里追问,我会把下一步应该如何做告诉您。
根据插件开发的质量,在 .vimrc 里定义的映射在先,插件加载很可能在后,因此如果先定义了 ,x 的功能有可能会在插件加载之后被覆盖。
开发过硬的插件,应该会先查是否已经有到指定功能的映射,没有才会再做映射。而且映射之前,也会再查一次,它想指定的映射键是不是已经被用作其它功能。
如果是低质量的插件,那就得去改代码了。更麻烦。
这里 ,x \x 等只是为了说明方便。请您替换成您自己需要的按键。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询