linux中vi大括号enter缩进,2018-02-17 在vim中让大括号自动完成并对齐

转:

如果你想在vim中当输入一个左大括号的时候,让vim自动插入插入右大括号,并且回车换行,将光标置于下一行向右缩进4个空格(一个tab),就在.vimrc中配置:

imap { {}iV

上面有个前提就是你设置了

set smartindent

set tabstop=4

set shiftwidth=4

set expandtab

如果你只想让你的vim完成标题中说的事情,到此已经完成。但是如果你想了解上面的是什么样的原理,那就继续往下看,你会意外的收获的。

imap是vim配置中的指令,就是做一个映射,语法就是

imap 要映射的东西 被映射成什么东西

按照这种理解,上面的那句就可以理解为:

映射“{”为

{}iV

后面的东西是什么就是vim中依次执行这些操作,什么操作呢?我们一一分解;

{} 就是直接插入左右括号

就是按键盘的ESC键,切换到命令行模式

i  按键盘的i键,进入插入模式

按回车,此时将右括号换行

就是按键盘的ESC键,切换到命令行模式

V 按住shift+v,就是选中当前行就是有括号所在的行

< 按住shift+,将当前行向右移动一个tab,此时有括号已经和做括号对齐

O 按住shift +o,在当前行(右括号)的前一行插入

也许你已经了解了怎么回事,其实就是告诉vim如果我们输入{ ,那就接下来做上面一系列操作。

当你明白了这个原理,你就可以自己去创建一些映射来提高你的编程速度,就上面的映射提高了你9倍的速度啊。

另外以个你可能想到的映射就是小括号,目标是什么呢?当我们插入左边的小括号的时候,告诉vim插入右边的小括号并且移动光标到括号中间并处于插入状态。方法就是先去你的vim中试试你怎么做到,然后在你的.vimrc中把你刚才的操作想上面一样做成一个映射。可能你的和我的不一样的,我用了3步,你用了4步,还有人用了5步,但是都没有问题,因为最后达到的效果都一样。看看我的吧:

imap ( ()i

上面是关于自动插入,但是如果你发现插入错误,想删除插入的操作,需要删除自动插入的所有的东西,这样需要好几个步骤,能不能删除左边括号就自动删除后面自动插入的东西呢?能,但是有点麻烦,关于这部分,请参看:

http://colder.blog.163.com/blog/static/17394661820124201611732/

完。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值