如何根据文件类型对不同的命令使用相同的键盘映射?
How do I use the same keymap for different commands depending on the file type?
我有以下配置,但是当我进入一个eruby文件然后返回到另一个文件时,F3仍然执行:Autoformat
。
noremap <F3> :Neoformat<CR>
autocmd FileType eruby bufdo map <F3> :Autoformat<CR>
我希望它只在 eruby 缓冲区中应用该命令。
首先,这里不要使用bufdo
;它对所有缓冲区执行命令。其次,更喜欢 <buffer>
映射。
使用自动命令:
augroup vimrc_eruby
au!
au FileType eruby noremap <buffer> <F3> :Autoformat<CR>
augroup END
但我非常鼓励阅读有关 ftplugin
的内容,并使用 ~/.vim/after/ftplugin/eruby.vim
。在 vim 的帮助中阅读 setlocal
、map-<buffer>
和 b:undo_ftplugin
。
我已经写过几次关于在 Vi 和 Vim StackExchange 上使用这些工具的答案:https://vi.stackexchange.com/a/22256/10604, https://vi.stackexchange.com/a/15329/10604, https://vi.stackexchange.com/a/15019/10604
我有以下配置,但是当我进入一个eruby文件然后返回到另一个文件时,F3仍然执行:Autoformat
。
noremap <F3> :Neoformat<CR>
autocmd FileType eruby bufdo map <F3> :Autoformat<CR>
我希望它只在 eruby 缓冲区中应用该命令。
首先,这里不要使用bufdo
;它对所有缓冲区执行命令。其次,更喜欢 <buffer>
映射。
使用自动命令:
augroup vimrc_eruby
au!
au FileType eruby noremap <buffer> <F3> :Autoformat<CR>
augroup END
但我非常鼓励阅读有关 ftplugin
的内容,并使用 ~/.vim/after/ftplugin/eruby.vim
。在 vim 的帮助中阅读 setlocal
、map-<buffer>
和 b:undo_ftplugin
。
我已经写过几次关于在 Vi 和 Vim StackExchange 上使用这些工具的答案:https://vi.stackexchange.com/a/22256/10604, https://vi.stackexchange.com/a/15329/10604, https://vi.stackexchange.com/a/15019/10604