vim - 如何仅在文件类型的缓冲区中取消映射键绑定(bind)?

标签 vim

我有一个映射 ;; 移动到行尾并插入一个冒号(在类 C 语言中很有用)。在我的 scheme.vim 文件中,我有:

iunmap ;;

问题是:

  1. 它会在我每次打开方案文件时尝试运行此命令,此时它已经取消映射,所以我会收到警告。

  2. 它会在全局取消映射这个键,所以如果我在同一个 session 中打开一个非方案文件,它不会记住这个绑定(bind)。

至少我想解决#1,让它只在绑定(bind)处于事件状态时尝试取消映射,这样我就不会收到错误。

最佳答案

最好使您的 ;; 映射基于 'filetype' 的缓冲区本地映射。

autocmd FileType c,javascript inoremap <buffer> ;; <esc>m'A;<esc>``a

您可以根据需要向此映射添加任意数量的文件类型。只需用逗号分隔文件类型即可。

有关更多帮助,请参阅:

:h :au
:h :map-local
:h 'filetype'
:h FileType

关于vim - 如何仅在文件类型的缓冲区中取消映射键绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37448071/

相关文章:

vim - 重置 Vim 中的所有按键映射

vim - 提高语法匹配正则表达式的性能

vim - 使用 --remote 时如何向 gvim 发送命令?

Vim 折叠 : how to hide all the single lines not containing a search pattern (or fold zero line)?

vim - 我在哪里可以找到 Vim `tags` 选项的完整引用?

ruby-on-rails - 在MacVim中使用rails.vim Rake运行规范,如何获得彩色输出

vim - 如何在 Vim 中启用 'gx'?我的不能用了

html - 编辑标签中的文本以成为新标签

regex - 如何仅在包含或不包含其他模式的行上替换模式?

perl - 如何在vim搜索中有效转义元字符