所以最初我的 vimrc 中有以下配置
map <F5> :call Compile()<CR>
但是不知怎么感觉F5不是很方便,所以尝试映射到
<A-q>
或 <A-1>
,这似乎不起作用。我也试过<C-q>
和 <C-1>
,好像什么都没发生。所以我不能将函数映射到键绑定(bind)?
最佳答案
某些组合键,如 Ctrl + 非字母无法映射,无法区分 Ctrl + 字母与 Ctrl + Shift + 字母。 (除非您的终端为它发送一个不同的 termcap 代码,而大多数人不会。)在插入或命令行模式下,尝试键入组合键。如果没有任何 react /插入,则不能使用该组合键。这也适用于 <Tab>
/<C-I>
, <CR>
/<C-M>
/<Esc>
/<C-[>
等等(唯一的异常(exception)是 <BS>
/<C-H>
。)这是一个已知的痛点,也是 vim_dev 和 #vim IRC channel 上各种讨论的主题。
所以,<C-1>
出来了,但其他映射应该可以正常工作;例如:
nnoremap <C-q> :call Compile()<CR>
您可以通过以下方式检查是否没有其他插件清除/覆盖映射
:nmap <C-q>
n <C-Q> * :call Compile()<CR>
其他提示
:noremap
;它使映射不受重新映射和递归的影响。 :map
涵盖正常、视觉和运算符(operator)等待模式。您可能只想从正常模式开始编译,所以 :nnoremap
更精确。 (如果您稍后添加一个可视模式映射来仅编译选择,则该键仍然可以在该模式下自由使用。)关于vim - 我可以将键绑定(bind)映射到 vimrc 中的函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40504408/