不同的 Vim 插件可以有不同的 localleader 吗?

idb*_*rii 5 vim plugins vim-plugin

我开始使用一个与我现有地图冲突的插件,但我不想重新映射所有地图,我只想添加一个前缀。我以为我可以用 LocalLeader 做到这一点。

Vimdoc 说:

<LocalLeader>就像<Leader>,除了它使用“maplocalleader”而不是“mapleader”。 <LocalLeader>用于缓冲区本地的映射。

似乎设置 localleader 的唯一方法是设置一个全局变量(文档没有提到这一点,但b:maplocalleader没有用):

let maplocalleader = '\\'
Run Code Online (Sandbox Code Playgroud)

而且我不知道我如何干净地取消设置该变量(在设置插件后清除它的 autocmd!?)

有没有办法做到这一点?还是 LocalLeader 只提供一个全局前缀和一个特定于文件类型的前缀?

Ing*_*kat 3

你最后的预感是正确的。如果插件使用<Leader>(并且应该使用,除非它是文件类型插件),那么乱搞maplocalleader.

重新映射通常是通过<Plug>映射来完成的,插件希望能够提供这种功能。一些插件确实定义了很多类似的映射,其中一些定义了一个g:pluginname_mappingprefix(或多个)变量,以避免您必须单独重新映射所有映射。如果您的插件没有,也许可以向插件作者写一个建议/补丁。