vim/nvim键盘映射

vim

 

在输入模式下设置按键映射

imap w p	"按键w 映射p,按下w等同于按下p
imap k w	"按键 k 映射成p

在输入模式下,当按下k键时按理说相当于按下w键, 所以应该输出w字母.
但由于 w又映射 了 p所以最终还是输出了p. 这是递归映射.
imap w p影响到其它和 w相关的按键映射.

如果不想被某个映射所影响可以使用关键字nore, 如下:

inoremap w p	"按键w 映射p,按下w等同于按下p
imap k w	"按键 k 映射成p

这样inoremap w p就不会被其它映射影响

 
 

映射延迟

 

下面是按下两次 w映射成 p的按键序列设置

inoremap ww p

当按下第一个w时 vim 会等待你按下第二个w. 这个等待时间就是延迟, 如果超过这个时间, 按键序列映射将重置,把这次的输入当成正常输入. 如果在没有超时按下第二个w就是映射输入.

当然这个延迟时间是可以设置 的(默认时间是1000毫秒), 下面把延迟时间设为300毫秒:

inoremap ww p
set timeoutlen=300

不同模式下的映射

vim有不同的模式, 如,插入(输入)、普通、命令模式等。
映射也有不同形式的map命令来对应上述模式,可以针对特定的模式设置键盘映射:

映射命令和有效模式的总览:

有递归的映射无递归的映射在什么模式下有效
mapnoremap普通,可视模式及操作符等待模式
vmapvnoremap可视模式
nmapnnoremap普通模式
omaponoremap操作符等待模式
map!noremap!插入和命令模式
imapinoremap插入模式
cmapcnoremap命令模式

键盘名称

 

几个字母组成的键盘按键需要用尖括号 <>
例如,esc表示连续按下 或 输出e、s、c、字母
    <esc>表示键盘的Esc键,

在vim中一些按键说明:对于功能组合键

<A> 表示Alt(Alt键可以使用<M-key><A-key>来表示, 例子, <A-e>表示Alt + e
<S-F1>表示 Shift-F1
<Space>表示空格
<BS>表示 Backspace
<Esc>代表Escape键:
<CR>代表Enter键;
<C-j>代表Ctrl + j.
<D>代表Command键.
 
 

例子

inoremap <C-j> <esc>:	" 按Ctrl + j 等于按下Esc和:
inoremap <C-i> <CR>		" Ctrl + j = 回车
inoremap <C-k> <BS>		" Ctrl + k = 删除或退格键

nvim

init.vim 配置和vim一样,照上面搞就可以.

init.lua 有几种写法,还有很多功能 自己去看
github nvim-lua-guide-zh
gitee nvim-lua-guide-zh

我只记住觉得常用的

下面映射 需要neovim 0.7.0+版本

-- 默认是非递归的
vim.keymap.set('i', ']', 'ooo')
-- 想要递归 设置remap = true
vim.keymap.set('i', 'f', ']', {remap = true})

第一个参数 ‘i’ 表示起效模式,第二参数按什么键或组合键,第三参数,执行什么 可是函数,可以命令,或是输入 字符.
第四个参数设置为递归映射, 不设置默认为非递归。

第一个参数 是 和上面的vim表对应的

比如 'i'就是 inoremap'n'就是nnoremap
去 nvim-lua-guide-zh 看,里面有一张对应表

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值