像let mapleader = ","
这样的简单映射似乎不起作用,所以我重新安装了vim并删除了所有插件。然而,像这样的一些映射仍然不起作用。我在哪里可以找到vim插件配置文件?我查看了~/.vim
和~/.config
。当我在命令模式下键入一个逗号,而不是启动mapleader命令,我的mac给了我一个警钟声。我将let mapleader = ","
作为.vimrc
的第一行。
更新为了帮助诊断,我在.vimrc
中有这一行:
noremap <silent> <Leader>w :w<CR>
当我在vim中输入:map
时,我会看到其他映射:
,w * :w<CR>
答案 0 :(得分:4)
通过vim -V
运行vim,您将获得最详细的信息。
这将为您提供有关vim查找,查找和打开的每个文件的信息。
最重要的是~/.vimrc
和/usr/share/vim/*
。
此外,请确认您的mapleader
命令位于vimrc
的开头。
从手册:
Note that the value of "mapleader" is used at the moment the mapping is
defined. Changing "mapleader" after that has no effect for already defined
mappings.
修改
要验证是否已启用,请在正在运行的vim中键入:let mapleader
。它应该打印类似mapleader ,
的内容。请验证它,以便我们可以考虑其他原因。
答案 1 :(得分:3)
尝试将映射放在名为~/.vimrc
的文件中。
~/.vim
目录用于存储插件文件,而~/.vimrc
文件通常用于映射等通用设置。
答案 2 :(得分:1)
请注意,定义映射时使用“mapleader”的值。之后更改“mapleader”对已定义的映射没有影响。
在创建映射之前,您确定要定义地图领导者吗?如果没有,您的mapleader可能与您的定义,
一样,但您的所有宏都将映射到\
。
答案 3 :(得分:1)
Vim插件通常在~/.vim/plugin/pluginname.vim
中“自行配置”,而不是在外部文件中。配置通常由变量(例如g:pluginnameSettingName
)和映射组成,它们应以这种格式显示:
nnoremap <silent> <Plug>(PluginMapping) :<C-u>call pluginname#MyFunc()<CR>
if ! hasmapto('<Plug>(PluginMapping)', 'n')
nmap <Leader>x <Plug>(PluginMapping)
endif
如果默认映射以<Leader>
开头,那么您通过:let mapleader
进行的预期更改应该有效。或者,您可以尝试通过将自己的键映射到<Plug>...
映射来显式覆盖映射。
答案 4 :(得分:0)
我真的建议您使用实用的插件Vundle来管理您的vim插件。它使您能够以文本格式管理插件并分别配置每个插件的参数。
例如,如果你想安装一个新插件'a.vim',你只需要在你的bundle.vim中添加一行。
Bundle 'a.vim'
(对于您可以从VimScripts访问的任何插件,您只需输入短名称,例如'c.vim'或'Tagbar')。重新启动Vim并运行:BundleInstall
,Vim将自动安装新插件。
同样,当你想要卸载插件时,只需删除配置文件中的行Bundle 'a.vim'
并运行:BundleClean
,插件就会自动删除。