最近开始在 Linux 下写一些小程序,代码格式化用的是 clang-format ,但必须手动选择区域然后格式化,用起来总有点不爽,自己加空格又太麻烦。
所以想问一下,怎么才能像 visual studio
一样,在输完分号 ;
或者右括号 )
后自动的格式化当前行的代码。
1
araraloren 2016-11-22 10:18:39 +08:00
~~可能需要一些配置吧,个人不是很清楚,我觉得 emacs 比较好用~~
当然,图形界面还是用 qtcreator |
2
skydiver 2016-11-22 11:00:49 +08:00 via Android
可以设置保存时自动格式化
|
3
RicardoM OP @araraloren 现在主要是在刷一些算法和数据结构方面的题,感觉 Vim 刚好够用,所以想把 Vim 配置的顺手一点。至于 emacs 暂时不敢开坑了。
|
4
RicardoM OP @skydiver 我是想能够在输完每一条语句后,就立即自动格式化当前语句。设置保存时自动格式化,还是得隔一会儿手动操作一下,感觉还是不太方便。
|
5
phoneli 2016-11-22 11:39:08 +08:00
我会写。有时间可以交流一下。哈哈
|
7
RicardoM OP @skydiver 我也觉得自己有点强迫症,但是 windows 下 visual studio 用多了, vim 不能自动格式化当前行,心里总有点不爽。
|
8
skydiver 2016-11-22 11:59:50 +08:00
@RicardoM 真的强迫症的话应该自己就把代码格式写对。我的代码拿格式化工具处理之后大部分的地方都不会变,因为本来就写的没问题。
|
9
yangtukun1412 2016-11-22 12:19:14 +08:00 1
简单试了下:
inoremap ; ;<ESC>Vgq==A |
10
RicardoM OP @skydiver 代码格式基本没问题,就是表达式中变量、数值和函数之间的空格,自己手动加的话,少的还行,多的就不太方便了
|
13
iCyMind 2016-11-22 12:54:57 +08:00 via Android
什么叫格式化当前语句?写的时候难道不是自动缩进吗
|
14
RicardoM OP @iCyMind 缩进是自动的,我的意思是:假如当前行是 `int i=0` ,我输完分号后变为 `int i = 0;`
|
16
RicardoM OP @introom 刷题可以在那几个网站上写,但还是不能解决这个代码格式化的问题吧,网站上只是能自动缩进
|
17
phoneli 2016-11-22 14:57:08 +08:00
@RicardoM 准确来说,插件其实就是一段代码。代码里面可以用 imap ,也可以不用的。我记得, vim 好像有一个监听事件的。输入回车,触发一个函数的。:)
|
18
chemzqm 2016-11-22 15:22:18 +08:00
:h gq
:h equalprg |
19
newtype0092 2016-11-22 15:56:19 +08:00 1
我觉得中间的空格手动加。我一直这么写,没觉得不方便,因为空格这东西一天两天你还要想,时间长了完全就是本能了,你想想你用中文输入的时候是不是要刻意记得按空格选词。
而且你这么配置好,习惯了以后,不管是换编辑器、换 IDE 还是换语言,都会增加障碍。 |
20
ruoxuanfeng 2016-11-22 17:20:17 +08:00 1
最近在尝试 astyle ,有 vim 插件,支持自动格式化, lz 可以试试
|
21
skywind3000 2016-11-23 19:50:09 +08:00
现在的同学们写点代码依赖自动化到这种地步了么?以前 DOS 下敲代码时,有个 autoindent 就算不错了。
|
22
RicardoM OP @skywind3000 😂被 visual studio 惯坏了
|
23
xiaohanqing 2016-12-19 23:58:10 +08:00 via Android 1
:help cinkeys
|