我希望绑定以下内容:
对于CSS、HTML文件:
<c-space> <c-x><c-n>
对于Ruby文件:
<c-space> <c-x><c-u>
对于CSS、HTML文件: <c-space> <c-x><c-n>
对于Ruby文件: <c-space> <c-x><c-u>
这里有更加完整、精确和正确的文档,但简而言之:
在您的ftplugin文件夹中创建一个以您想要使用的文件类型命名的文件(如果需要,请创建此文件夹)。
├── vim
│ ├── after
│ ├── autoload
│ ├── bundle
│ ├── ftplugin
│ │ ├── python.vim
│ │ ├── rnoweb.vim
│ │ └── tex.vim
│ └── syntax
noremap! <buffer> <F5> <Esc>:w<CR>:!python % <CR>
这将是一个仅针对此文件类型、仅在此缓冲区中定义的绑定。请确保在您的 vimrc 文件中出现了 filetype plugin on
或类似的设置。
编辑:Peter Rincker 提出的优秀建议已经被采纳:使用 noremap 版本的 map 命令和 <buffer>
标志。他还提醒我们在我们的文件类型插件文件中使用 setlocal
而不是 set
。
使用 autocmd 命令:
autocmd filetype css inoremap <buffer> <c-space> <c-x><c-n>
autocmd filetype html inoremap <buffer> <c-space> <c-x><c-n>
autocmd filetype ruby inoremap <buffer> <c-space> <c-x><c-u>
autocmd filetype css,html setlocal...
。 - dash-tom-bangsetlocal
。 - plhn将以下内容放入您的.vimrc文件中。将“do stuff”行替换为您的绑定。
:if match(@%, ".css") >=0
: do css stuff
:endif
:if match(@%, ".rb") >=0
: do ruby stuff
:endif
<buffer>
标志来使映射局限于缓冲区。例如:inoremap <buffer> <c-space> <c-x><c-o>
。你还需要注意使用setlocal
设置选项。 - Peter Rincker