Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim autocmd未正确映射映射_Vim_File Type_Autocmd - Fatal编程技术网

Vim autocmd未正确映射映射

Vim autocmd未正确映射映射,vim,file-type,autocmd,Vim,File Type,Autocmd,我想创建一个插件,将某个localleader映射映射到函数调用 我有一个ftplugin/javascript.vim文件,其中包含以下内容: augroup javascript_pluginName au! echom "The plugin is loaded for JS" au FileType javascript nnoremap <buffer> <localleader>j :call pluginName#pluginName#funNa

我想创建一个插件,将某个localleader映射映射到函数调用

我有一个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
augroup javascript\u pluginName
哎呀!
echom“插件是为JS加载的”
au FileType javascript nnoremap j:调用pluginName#pluginName#funName()
螺旋端
当我打开一个javascript文件时,消息会被打印出来,但是检查映射的组合显示没有这样的映射

我明白,nnoremap根本不会映射到其他映射之上。但是,如果我只保留nnoremap命令,而不将其放入autocmd,它将正确映射。 简单地在命令模式下执行调用也可以很好地工作

我查看了vim帮助以了解如何使用autocmd,但我看不出我使用它的方式与这里所解释的有什么区别。“艰苦学习维姆”这本书也没有帮助


有什么我遗漏的吗?我是否应该以不同的方式构建autocmd?

我终于发现了问题所在! 显然,根据本文:如果您将特定于文件类型的代码放入文件类型插件中,则无需为其创建autocmd

vim将文件类型设置为打开,然后运行与文件相关的ftplugin脚本,这使得样板文件变得多余

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

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

您是否尝试了
*.js
而不是
javascript
?Hi@SergioAraujo是的,我尝试过,但后来我了解到FileType事件不适用于文件模式,而适用于“ft”设置的值。