赞
踩
在使用vim的时候,一般通过如下的设置实现自动补全右括号并对齐
set autoindent " 自动缩进
set cindent
inoremap ' ''<ESC>i
inoremap " ""<ESC>i
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {<CR>}<ESC>O
第7行实现的是补全大括号并自动换行对齐的功能,这么写用于包含程序块确实没问题,但是当我们用大括号来初始化一个数组时,此时大括号还会换行对齐,这就使得代码变得丑陋。
思路:
使用vs的过程中,先输入一个右括号,会自动出现一个右括号,再敲入回车,会使括号换行对齐,如果不敲入回车键,就不会换行对齐。
于是就把把最后一行换成以下两行,解决了大括号无脑换行对齐的问题。
"数组则不换行
inoremap { {}<ESC>i
"函数左括号加回车则换行
inoremap {<CR> {<CR>}<ESC>O
第一行将 { 映射成 {} ,用来定义数组。
第二行将 {和回车键的组合映射成 {} + 回车换行,用来定义函数。
以下是完整的代码
set autoindent " 自动缩进
set cindent
inoremap ' ''<ESC>i
inoremap " ""<ESC>i
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {}<ESC>i
inoremap {<CR> {<CR>}<ESC>O
补充:这样改还是有点小问题,当定义一个函数时,先敲入左括号,如果约一秒钟内没有敲入回车键,再敲入回车键就不会进行回车换行了。不过影响不大。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。