vim - 无法让这些控制键在 vim 中工作
问题描述
我正在查看 Ben Frain 的这个 vimrc 文件的一部分
https://gist.github.com/benfrain/f09dd39e66fe2da9cf0a
" Allow line movement on wraps with CTRL+usual {{{
vmap <C-j> gj
vmap <C-k> gk
vmap <C-h> g$
vmap <C-6> g^
vmap <C-0> g^
nmap <C-j> gj
nmap <C-k> gk
nmap <C-4> g$
nmap <C-6> g^
nmap <C-0> g^
" }}}
我确实注意到该列表中的一个问题,例如 ctrl-k 已经执行 gk。所以当它起作用时,它不是来自他的映射。
我正在使用 macvim
即使我尝试一些简单的事情
~/.vim$ cat vimrc
nmap <C-0> aaaa
~/.vim$
或者
~/.vim$ cat vimrc
nmap <C-0> aaaa
vmap <C-0> aaaa
~/.vim$
它不起作用,它没有将 ctrl-0 映射到 'aaaa' 的输入
我已经尝试过/usr/local/bin/vim
(这是通过安装的macvim brew cask install macvim
)并且我已经尝试过/usr/bin/vim
(这是预装的vim)。所以我使用哪个 vim 没有区别。
我想知道可以映射哪些 ctrl 键(如果有)。
我听说映射 ctrl 键是个坏主意,可能因为很多都在使用中,并且最好使用领导键,其默认值为反斜杠。所以 。map <leader>0 aaaa
. 这行得通,但我仍然对 ctrl 的映射感到好奇。
解决方案
Vim 不会“看到”所有可用的 Ctrl 组合。Vim 是为 Unix 终端开发的,这些终端并不为应用程序提供所有的 Ctrl 键。
要测试 ctrl 组合是否可映射,请执行以下操作:
打开 Vim 并进入插入模式。然后点击Ctrl-v您要映射的 Ctrl 组合。如果显示某些内容,则 Ctrl 组合是可映射的。
例子:
- 如果你击中Ctrl-v后跟Ctrl-k字符
^k
显示(通常为浅蓝色)。Ctrl-k可映射也是如此。 - 如果你点击Ctrl-v后面Ctrl-0什么都没有显示。所以Ctrl-0是不可映射的。
- 如果你点击Ctrl-v后跟Ctrl-3字符
^[
显示。所以……Ctrl-3等于ESC。
推荐阅读
- adsense - Adsense:如果没有可用的广告后备网址不起作用
- dart - Dart 有类变量的概念吗?
- java - 从 XWPFSDT 获取段落
- vb.net - 突出显示 DataGridView 中的行而不过滤其余数据
- sql-server - 谁能帮我写一个查询,这样我就可以在sql server中得到每个月和每年数据库占用多少空间
- ios - 向 iTunes Connect 提交构建但未显示
- android - 在信任库中添加自定义证书
- javascript - ReferenceError:谷歌未定义/地理编码API
- java - 如何在 Java 中使用 Bigdecimal 数学运算获取值
- javascript - 格式化字符串的对象