让Vim更好的工作――VIM映射


本文摘自PHP中文网,作者齐天大圣,侵删。

映射是我最喜欢的vim功能了,通过它可以自由的设置自己的快捷键,可以大大提高我的编写效率。映射可以理解为设置快捷键,就是让你用少量的,便于按的键来替代比较多、繁的键。

什么时候用映射

如果你有以下一个或多个困扰,那么就可以来使用映射了哦

  • 不满现在的按键

  • 想设置一些快捷键来提高编辑速度

  • 想组合一些按键来完成新的需求

映射的分类

我们知道,vim有多种模式,与其对应的,映射也有nmap(普通映射)、imap(插入映射)、vmap(块选择映射)。

我们分别来选几个案例来讲讲这三种映射。

普通映射

1

2

" 使用F1切换显示行号

nmap <F1> :set nu! nu?<cr>

这里的CR表示回车键的意思。

插入映射

1

2

" 使用jj来代替esc键,完成从插入模式退回到普通模式

imap jj <esc>`^

一般我们都会使用jj来代替esc键,来完成快速从插入模式切换到普通模式。

1

2

3

" 在插入模式下向前向后删除字符

imap <C-b> <Backspace>

imap <C-d> <Esc>lxi

这里c表示ctrl键,在插入模式下,使用ctrl+b表示向后删除一个字符,而使用ctrl+d表示向前删除一个字符。

块模式映射

一般的,我们经常会对多行文本来进行增加缩进,或者减少缩进。之前一篇文章说过,可以通过块选择结合命令行、或者通过宏来实现该需求。今天,学了映射后,可以使用一个更加简单的方法即可实现需求。

1

2

vmap < <gv

vmap > >gv

现在,如果我们想对多行进行缩进,只需选择好这些行,然后按下>或<即可实现。

递归映射

如果你下一下的映射时,会发生什么

1

nmap dd O<esc>jddk

如果当你执行了dd后,会发生严重的问题的。因为映射两边都有dd,所以会导致无限循环。这种无限循环是由于递归造成了,所以叫做递归映射。

大家可以看到,递归映射是有危害的,所以,工作中一律不准使用递归映射,而是要采用非递归映射。那么如果进行非递归映射呢?也非常简单,加4个字母即可nore

  • nmap 递归 nnoremap 非递归

  • imap 递归 inoremap非递归

  • vmap 递归 vnoremap 非递归

以上就是让Vim更好的工作――VIM映射的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

Linux如何返回上一级目录

Linux如何查看服务器当前的并发访问量

Linux命令在哪

通过describenetworkinterfaces查看弹性网卡(eni)列表

Linux怎么运行.sh文件

Linux文件路径怎么写?

怎么在Linux系统中以单容器安装nginx+asp.net core

Linux怎么切换到root用户模式

.Linux中什么意思

查询一台或多台与专有网络 vpc 建立了连接的经典网络类型实例

更多相关阅读请进入《Linux》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...