如何根据文件类型对不同的命令使用相同的键盘映射?

时间:2019-08-25 19:06:05

标签: vim neovim

我具有以下配置,但是当我输入一个eruby文件然后返回到另一个文件时,F3仍然执行:Autoformat

noremap <F3> :Neoformat<CR>
autocmd FileType eruby bufdo map <F3> :Autoformat<CR>

我希望它仅在eruby缓冲区中应用该命令。

1 个答案:

答案 0 :(得分:4)

首先,不要在此处使用bufdo;它为所有缓冲区执行一条命令。其次,更喜欢<buffer>映射。

使用自动命令:

augroup vimrc_eruby
  au!
  au FileType eruby noremap <buffer> <F3> :Autoformat<CR>
augroup END

但是,我强烈建议您阅读有关ftplugin的内容并使用~/.vim/after/ftplugin/eruby.vim。在vim的帮助中了解setlocalmap-<buffer>b:undo_ftplugin

我已经写了几次关于在Vi&Vim StackExchange上使用这些工具的答案,以后可以链接到。