我正在查看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
(通过brew cask install macvim
安装的macvim)和我尝试过的/usr/bin/vim
(预安装的vim)。因此,我使用哪个vim没什么区别。
我想知道可以映射哪些ctrl键。
我听说映射ctrl键是一个坏主意,也许'正在使用许多人,并且最好使用默认为反斜杠的leader键。这样。 map <leader>0 aaaa
。可以,但是我仍然很想知道ctrl的映射。
答案 0 :(得分:3)
Vim不会“看到”所有可用的Ctrl-something组合。 Vim是为Unix终端开发的,这些终端并未向应用程序提供所有的Ctrl键。
要测试ctrl组合是否可映射,请执行以下操作:
打开Vim并进入插入模式。然后按 Ctrl-v ,然后按要映射的Ctrl组合键。如果显示某些内容,则Ctrl组合是可映射的。
示例:
^k
(通常为浅蓝色)。因此 Ctrl-k 是可映射的。^[
。所以... Ctrl-3 等于 ESC 。答案 1 :(得分:0)
此页面提到xmap,vmap和nmap https://vim.fandom.com/wiki/Mapping_keys_in_Vim_-Tutorial(Part_1)
之间的区别:map <-- (presumably display all maps) :nmap - Display normal mode maps :imap - Display insert mode maps :vmap - Display visual and select mode maps :smap - Display select mode maps :xmap - Display visual mode maps :cmap - Display command-line mode maps :omap - Display operator pending mode maps
和
nmap, nnoremap, nunmap Normal mode imap, inoremap, iunmap Insert and Replace mode vmap, vnoremap, vunmap Visual and Select mode xmap, xnoremap, xunmap Visual mode smap, snoremap, sunmap Select mode cmap, cnoremap, cunmap Command-line mode omap, onoremap, ounmap Operator pending mode
您似乎无法使用ctrl进行数字运算。
nmap用于普通模式,因此要键入aaaa,您需要键入iaaaa才能首先进入插入模式。因此,使用nmap,映射到iaaaa即可输入“ aaaa”。
您可以一直尝试nmap <C-a> iaaaa
到<C-z>
,并从大多数反馈中获得答案。您可以进行map <C-a> aaaa
或:map <C-a> aaaa