你可以在Vim中有文件types特定的键绑定吗?

在我的.vimrc文件中,我有一个注释的键绑定,在一行之前插入双斜杠( //

 " the mappings below are for commenting blocks of text :map <CG> :s/^/\/\//<Esc><Esc> :map <CT> :s/\/\/// <Esc><Esc> 

但是,当我编辑Python脚本时,我想将其更改为#符号以进行注释

我有一个Python.vim文件在我的.vim/ftdetect文件夹,也有设置为tabwidths等。如果可能的话覆盖键绑定的代码是什么,所以我有Python的使用:

 " the mappings below are for commenting blocks of text :map <CG> :s/^/#/<Esc><Esc> :map <CT> :s/#/ <Esc><Esc> 

ftdetect文件夹用于文件types检测的脚本。 文件types插件必须位于ftplugin文件夹内。 文件types必须以下列三种格式之一包含在文件名中:

  • .../ftplugin/<filetype>.vim
  • .../ftplugin/<filetype>_foo.vim
  • .../ftplugin/<filetype>/foo.vim

例如,您可以映射cpp文件types的注释,将以下内容放在.../ftplugin/cpp_mine.vim

 :map <buffer> <CG> :s/^/\/\//<Esc><Esc> :map <buffer> <CT> :s/\/\/// <Esc><Esc> 

您可以使用:map <buffer> ...来为活动缓冲区创build一个本地映射。 这要求你的Vim是用+localmap编译的。

所以你可以做类似的事情

 autocmd FileType python map <buffer> <CG> ... 

顺便说一句,如果你的主要问题是关于评论…你应该检查出'nerdcommenter'插件,它是在java / c / c + + / python / dos_batch_file /等等注释/取消你的代码的最快方法。