如何将键绑定映射到vimrc中的函数?

T.F*_*.F. 5 vim

所以最初我在vimrc中有以下配置

map <F5> :call Compile()<CR>
Run Code Online (Sandbox Code Playgroud)

但是以某种方式我觉得F5不太方便,所以我尝试将其映射到<A-q>or <A-1>,这似乎没有用。我也尝试过<C-q><C-1>,似乎什么也没发生。

所以我不能将功能映射到键绑定吗?

Ing*_*kat 6

某些键组合(例如Ctrl+非字母)无法映射,并且Ctrl+字母与Ctrl+ Shift+ +字母无法区分。(除非您的终端为此发送了一个不同的termcap代码,但大多数情况下不会这样做。)在插入或命令行模式下,请尝试键入组合键。如果没有任何反应/未插入,则无法使用该组合键。这也适用于<Tab>/ <C-I><CR>/ <C-M>/ <Esc>/ <C-[>等。(唯一的例外是<BS>/ <C-H>。)这是一个已知的痛点,也是有关vim_dev和#vim IRC通道的各种讨论的主题。

这样<C-1>就可以了,但是其他映射应该可以正常工作。例如:

nnoremap <C-q> :call Compile()<CR>
Run Code Online (Sandbox Code Playgroud)

您可以通过检查是否没有其他插件被清除/覆盖了映射

:nmap <C-q>
n  <C-Q>       * :call Compile()<CR>
Run Code Online (Sandbox Code Playgroud)

其他提示

  • 你应该用:noremap ; 它使映射不受重新映射和递归的影响。
  • :map涵盖正常,可视和操作员待定模式。您可能只想从普通模式开始编译,所以:nnoremap更精确。(并且,如果以后添加可视模式映射以仅编译选择内容,则该键仍然可以在该模式下免费使用。)