vim设置函数大括号自动对齐补全换行,数组自动补全,不换行

本文介绍如何在Vim编辑器中设置智能补全括号及对齐功能,特别是针对大括号的特殊处理,以适应不同场景如数组初始化和函数定义,提升代码编写效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用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

补充:这样改还是有点小问题,当定义一个函数时,先敲入左括号,如果约一秒钟内没有敲入回车键,再敲入回车键就不会进行回车换行了。不过影响不大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值