当我执行
<c-o><c-o><c-o>
并按住控制键时,它会在跳转列表中向后跳转 3 次,但如果我执行 noremap <leader>o <c-o>
然后 <leader>o<leader>o<leader>o
,并像我使用 control 一样按住前导键,它会第一次向后移动然后进入编辑模式并添加一个o。如果我们按住引导键,它就会被忽略。
有解决办法吗?
修饰键(如Ctrl、Alt和Shift)可以保持按下状态;所有键都将接收修饰符。这是键盘输入的一个功能,Vim 没有什么特别的。
对于 Leader 键,您不能指定修饰符。 它必须是“真实”键(可能带有修饰符)。由于领导者键只是开始映射序列,因此您不能按住它。您能实现的最接近的是它的重复映射:
:nnoremap <Leader><Leader> :echo "pressed twice"<CR>
如果你想定义一个可以通过单次按键重复的映射,你必须使用带有(例如
<C-g>
或 <A-g>
)或不带(Vim 中没有多少剩余,也许 ,
)的单个键
)。
您可以使用递归映射并将
<leader>
键附加到映射中。
这是我的
.vimrc
例如:
let mapleader=" "
nnoremap <leader>t :tab sbuffer<cr>
nnoremap <leader>x :tabclose<cr>
nmap <leader>j :tabprev<cr><space>
nmap <leader>k :tabnext<cr><space>
注意:我使用
<space>
作为我的 Leader 键;编辑映射以适合您的领导者键。