最近开始在 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 ![]() 简单试了下: 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 ![]() 我觉得中间的空格手动加。我一直这么写,没觉得不方便,因为空格这东西一天两天你还要想,时间长了完全就是本能了,你想想你用中文输入的时候是不是要刻意记得按空格选词。 而且你这么配置好,习惯了以后,不管是换编辑器、换 IDE 还是换语言,都会增加障碍。 |
20 ruoxuanfeng 2016-11-22 17:20:17 +08:00 ![]() 最近在尝试 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 ![]() :help cinkeys |