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

原文 标签 vim

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

iunmap ;;

问题在于:
  • 每次我打开方案文件时它都会尝试运行此命令,此时它已经未映射,因此我会收到警告。
  • 它将全局取消映射此键,因此如果我在同一 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:类似 Eclipse 的 Ctrl-Backspace 和 Ctrl-Del

    vim - Neovim 在 tmux 中丢失颜色方案。我看到的所有过去的解决方案都不适合我

    performance - Vim 滚动缓慢

    vim - 在vim中缩进两个空格的选择(视觉模式)?

    vim - 如何在 Vim 中重复导航命令

    vim - -- 有没有办法最多复制一个搜索词,_包括_该词?

    Vim:设置 ctags 有困难。子目录中的源在项目根目录中看不到标签文件

    vim - 在VIM中将<Ctrl-Ctrl>映射到ESC

    vim - 粘贴到 vim 中的特定行而不移动光标

    javascript - vim javascript omnicomplete