ab高级进阶

30 篇文章 0 订阅

ab命令:

ab命令可以将一长串字符用缩写来定义,这有点象Linux中的alias,比如Linux中的ll命令就是ls -l的别名,ab的语法为:

:ab abbr phrase

abbr就是对phrase的简写,在insert 模式中,输入abbr,再按非字母字符(比如空格,点号等)Vim就自动把phrase插入到光标处位置。此情景一般用在频繁输入的字符中,通常建议abbr选择使用频率很低的字符,比如Eclipse常用的一个快捷键syso,你可以定义成如下:

:ab syso  public static void main(String[] args) 

这样一来,每次输入syso的时候,整个main方法就自动插入到文本行了。如果你就是想输入'syso'这个原生字符串,那么您可以用下面这个命令取消:

:unab syso

列出当前定义的缩写有哪些可以用命令:

:ab

map命令:
map的功能比ab更强大,它不仅可以在insert 模式下定义宏(快捷键)而且可以normal,visual等模式下定义。其语法举例说明:(目标:在normal下用lv选中光标所在行)
:map lv 0v$ 
解析:0代表光标移至行首,v就是visual模式(该模式下可以通过hjkl来选中文本),$代表行尾,这样一来,在normal模式输入lv就能选中光标所在行了。
:map 列出所有已定义的映射命令
:unmap lv 取消lv映射的命令
:mapclear  清空所有映射
需要注意的是:
默认情况下,map命令是作用在normal模式下的
如果是想在virsual模式下新建某个命令的宏,可以使用:vmap,举例::vmap d <esc>dd就可以在virsual模式下把光标所在行删除。<esc>是纯粹的5个原始字符,意思是回到normal模式。
默认情况下,map是采用递归映射的,比如a映射成b,:map a b,然后c 又映射成了a,:map c a ,那么最终c也会自动映射成b,等同于:map c b,您现在可以试一试a,b,c的效果都是光标向前移动一个单词的长度。如果要不想使用递归,那么就要用:noremap
现在你应该能看明白上图的内容了吧,第一列就是宏会在哪中模式下生效,第二列代表快捷键了,第三列就是真正的命令序列集合了。您可以注意一下最后一个命令:(Shift+Insert)就是前些天分享过的,代表在normal模式下粘贴系统剪切板中的内容。
实用例子:
:map <C-a> <Esc>ggVG   实现类似于Widnows下的Ctrl+a全选 
:inoremap ( ()<esc>i   插入模式下输入'('后自动补全')',同理还可以实现'[','{'

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

anssummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值