vim - Vim:如何使用本地目录 .vimrc 覆盖文件类型定义的键映射地图?
问题描述
我有一个键映射
~/.vim/after/ftplugin/c.vim
nnoremap <buffer> <C-D> : ! cc % && ./a.out <CR>
我想创建一个本地配置project/.vimrc
来覆盖旧映射
nnoremap <C-D> : ! cc % -lncurses && ./a.out <CR>
但它不起作用。
我试试
在前面的例子中,本地映射是全局的,它被 <buffer> 映射覆盖。
在本地 .vimrc 中,映射 <buffer> <CD> ...,但它只覆盖第一个打开文件的键映射。
这个怎么做 ?
解决方案
应在以下内容之后执行显式自动命令after/ftplugin/c.vim
:
augroup c_overrides
autocmd!
autocmd! BufNewFile,BufRead *.c nnoremap ...
augroup END
或者:
augroup c_overrides
autocmd!
autocmd! FileType c nnoremap ...
augroup END
但是你真正应该做的是将你的项目特定的命令放入Makefile
并:make %
在每个项目中使用。
见:help :make
。
推荐阅读
- python - 与本地并行 lambda 调用相比,AWS Lambda 到 Lambda 并行调用降低了性能
- hadoop - HDFS - 每分钟 100 MB 文件的块大小和复制
- ruby-on-rails - Rails NoMethodError 未定义方法 `provider' for nil:NilClass
- python - 将请求 POST 中的数据添加到表模板中 [Django, Python]
- r - R中的复杂聚合函数构造?
- c# - 如何在没有刚体的情况下统一处理碰撞?
- javascript - 猫头鹰旋转木马未正确显示
- python - 函数调用另一个函数。颜色系统
- keras - 如何理解和调试 keras.model.fit 中的错误?
- google-cloud-platform - 如何避免从 Cloud Function 到 Cloud SQL 的网络出口费用?