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/

完。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这篇文章是手册的中文译版整理而来(英文看着太慢了,感谢前人铺路Orz...),vim的markdown插件和实时预...
    Himryang阅读 7,389评论 0 20
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 100,819评论 9 468
  • 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。 启动vim 在命令...
    im蚂蚁阅读 31,074评论 3 48
  • 百日练:一百天看一百本书第207天,加油(ง •̀_•́)ง。加油(ง •̀_•́)ง 今...
    Auguht阅读 114评论 0 0
  • 一天晚上,给妈妈打电话。妈妈说她刚从江边散步回来。 我说:“能经常去江边散步真好。” 妈妈说:“是啊。你不是说过,...
    杨跃阅读 314评论 0 0

友情链接更多精彩内容