VIM:在ftplugin中定义时,FileType特定的映射不起作用

时间:2012-09-05 19:14:18

标签: perl vim

我正在尝试为FileType perl设置映射。该映射适用于我忘记在行末使用分号的情况。

首先,我尝试添加我的.vimrc autocmd! FileType perl nnoremap <leader>; $a;<esc>并且它工作正常,但我想到使用ftlugin/perl.vim

所以我在相应的~/.vim/after/ftplugin/perl.vim

中添加了以下行
nnoremap <buffer> <leader>; $a;<esc>

但它不起作用。

知道为什么它不起作用吗?

我的perl版本为perl 5, version 14

2 个答案:

答案 0 :(得分:1)

尝试将文件放在~/.vim/ftplugin/perl.vim而不是~/.vim/after/ftplugin/perl.vim中。来自:help after-directory

                      *after-directory*
4. In the "after" directory in the system-wide Vim directory.  This is
   for the system administrator to overrule or add to the distributed
   defaults (rarely needed)
5. In the "after" directory in your home directory.  This is for
   personal preferences to overrule or add to the distributed defaults
   or system-wide settings (rarely needed).

来自:help ftplugin

  

如果您确实想使用默认插件,但是否决其中一个设置,   您可以在脚本中编写不同的设置:&gt;

     

setlocal textwidth = 70

     

现在在“after”目录中写这个,以便它在之后获得   分发“vim.vim”ftplugin |目录后|。对于Unix,这将是   “〜/ vim的/后/文件类型插件/ vim.vim给出的”。请注意,默认插件已设置   “b:did_ftplugin”,但这里忽略了它。

答案 1 :(得分:0)

我刚注意到的一件事让我发疯:<buffer>必须小写!出于习惯,我将所有<BRACKET>前缀加上大写......我对<BUFFER>做了同样的事情。我的ftplugin映射都没有工作,我无法理解......直到我浪费时间尝试不同的事情,才发现它必须是小写的<buffer>