Vim autocmd 无法正确映射映射



我想创建一个插件,将某个局部领导者映射到函数调用。

我有一个ftplugin/javascript.vim文件,其中包含以下内容:

augroup javascript_pluginName
  au!
  echom "The plugin is loaded for JS"
  au FileType javascript nnoremap <buffer> <localleader>j :call pluginName#pluginName#funName()<cr>
augroup END

当我打开一个javascript文件时,消息被打印出来,但随后检查映射的组合显示没有这样的映射。

我知道,nnoremap根本不会在其他映射之上映射。但是,如果我只保留 nnoremap 命令,而不将其放入 autocmd 中,它将正确映射。只需在命令模式下执行调用也可以正常工作。

我查看了 vim 帮助以了解如何使用 autocmd,我看不出我使用它的方式与那里解释的内容之间有任何区别。"学习维姆的艰难方式"一书也没有帮助。

我错过了什么吗?我应该以某种方式构建自动 cmd 吗?

我终于发现了问题所在!显然,根据这篇文章:https://vimways.org/2018/from-vimrc-to-vim/如果您将特定于文件类型的代码放入文件类型插件中,则无需为其创建 autocmd。

vim 在打开时设置文件类型然后运行与文件相关的 ftplugin 脚本的一般行为使样板变得多余。

这意味着在我的ftplugin/javascript.vim文件中,我只需要映射:

nnoremap <buffer> <localleader>j :call pluginName#pluginName#funName()<cr>

相关内容

  • 没有找到相关文章

最新更新