2023年7月9日发(作者:)
在Source Insight集成Astyle和汉字删除问题(zz)
Windows平台下也有好多人都喜欢用SourceInsight编辑C/C++程序,但是SourceInsight没有提供对代码格式化的功能,如果将Artistic Style集成到SourceInsight中,那就可以为它扩展出代码格式化的功能了。
假定的目录是“C:ArtisticStyle”,在该目录下有一个“”文件是用来保存配置的文件。下面简要地介绍下Artistic Style集成到SourceInsight中的方法。
1. 打开你的SourceInsight, 选择菜单“Options-->Custom Commands-->Add”,
输入Artistic Style(可以随便输入一个名字)。
2. Run中输入: C: --style=ansi –s4 -S -N -L -m0 -M40 -U
--convert-tabs --suffix=.pre %f
3. Dir留空,将Iconic Window, "Capture Output", "Parse Links in
OutPut", "File,then Line" 四项前打上勾。
----注意:根据我自己的测试的结果,这4个都不打钩比较好,只对“Pause when
done”打钩即可。如果选上前面说的4项,那么黑色的命令行界面会保留。
4. 然后点对话框中右侧的按钮“Menu”, 选择Menu-->View-->
右侧Insert, OK.
5. 此时在SourceInsight中的View菜单下多了个Style的子菜单选项,可以用它来对单个C/C++文件进行格式化。
C:> --style=ansi -s3 my_unformat.c
参数 --style=ansi
参数 -s3
所有空格会以 3 个 spaces 重新排列
文件名 my_unformat.c
文件名也可以用 wild (*) char 來代表,例如 *.c
Refer: /,
转自:/920538/214369
1、 只能删除半个汉字的问题
确实情况下,Source Insight删除汉字时是半个半个删除的,删除一半的汉字显示为乱码,在写注释时非常讨厌,最后在网上找到了一个宏,当按退格键时执行,基本上可以解决这个问题了。在附件中有这个宏。具体的使用方法文件中有说明,如下:
* 安装:
* ① 复制入SourceInsight安装目录;
* ② Project→Open Project,打开Base项目;
* ③ 将复制过去的添加入Base项目;
* ④ 重启SourceInsight;
* ⑤ Options→Key Assignments,将Marco: SuperBackspace绑定到BackSpace键; * ⑥ Enjoy!!
2、 GDI++不能正常显示汉字的解决
由 于安装了GDI++氦版,不知道为什么Source Insight中的汉字竟然不能正常渲染,我用的Consolas字体,刚开始以为只要在GDI++配置中做个字体链接就可以了,可惜不成功啊。网上高人 说将字体改为“宋体”可以解决问题,可惜我试了还是不行。最后一种一种字体尝试,最后确定“黑体”可以正常显示。
3、 代码格式化
由于是看的别人的代码,编程风格实在不敢恭维,编辑的格式也是乱七八槽,一看头都大了。真想找个工具将代码全部格式化好,确实有这样的好东东:AStyle,具体的参数可以参照它的说明文档。我用的是:
C: --style=ansi –s4 -S -N -L -m0 -M40 -U --convert-tabs
--suffix=.pre %f
可以在Source Insight中安装这个外部命令,具体如下:
点option→custom commands,点右边的Add,按提示输入一个名字如:Format
with Astyle,Run中输入刚才的命令行。
最后可以Option→Key Assignments中绑定一个快捷键,如下图所示:
命令:
1. 单个文件:astyle --style=ansi -s4 -S -N -L -m0 -M40 -U --convert-tabs --suffix=.pre
hello.c
--style=ansi 主要表示代码的花括号位置所在,其他的选项还有K&R等等,分别对应的简写是A1-A10。
-s4 表示缩进四个空格,也是默认配置
-S 表示用来表switch语句的缩进
-N 表示命名空间的缩进
-L 表示lable的缩进,goto对应的
-m0 表示条件表达式太长,换行书写时,下一行对上一行的最小缩进为0
-M40 表示一个一行未写完的语句(数组赋值,多参数),下一行对顶格的最大缩进为40
-U 表示括号内的两头的参数和括号之间不留空格
--convert-tabs 表示把非缩进的行里的Tab转换成空格,双引号里的Tab不会改变
--suffix=.pre 表示原始文件的后缀,默认为.orig
hello.c 需要代码格式化的文件
2. 多个文件:
astyle --style=allman --recursive /home/user/project/*.cpp /home/user/project/*.h
运行参数的常用选项:
参数命令 参数说明
default indent option
默认4个空格
--indent=spaces / --indent=spaces=# / -s#
指定#个空格,#在1~20之间
--indent=tab / --indent=tab=# / -t#
使用制表符,指定#个空格(1~20)
--indent=force-tab / --indent=force-tab=# / -T#
强制使用制表符,指定#个空格,#在1~20之间
default brackets option
默认不改变括号
--brackets=break / -b
括号改为下行( e.g. ANSI C / C++ style )
--brackets=attach / -a
括号在语句后( e.g. Java / K&R style )
--brackets=linux / -l
括号如linux风格
--brackets=stroustrup / -u
括号如stroustrup风格
--brackets=horstmann / -g
括号如horstmann 风格
②缩进选项
参数命令 参数说明
--indent-classes / -C
缩进class和struct块后面的public等
--indent-switches / -S
缩进switch块后面的case块
--indent-cases / -K
缩进case块后面的括号
--indent-brackets / -B
括号缩进
--indent-blocks / -G
括号缩进,函数缩进
--indent-namespaces / -N
命名空间后缩进
--indent-labels / -L
额外的标签缩进
--indent-preprocessor / -w
多行反斜杠定义缩进
--indent-col1-comments / -Y
允许注释跟随代码一起缩进
--max-instatement-indent=# / -M#
在连续声明中缩进最大#个空格(#小于80,默认为40)
--min-conditional-indent=# / -m#
在多行中设置最小缩进(#小于40,默认为当前两倍缩进)
③填充选项
参数命令 参数说明
--break-blocks / -f
在循环语句前后加空行
--break-blocks=all / -F
在循环语句前后、else、catch前加空行
--pad-oper / -p
运算符前后加空格 --pad-paren / -P
--pad-paren-out / -d
--pad-paren-in / -D
--pad-header / -H
--unpad-paren / -U
--delete-empty-lines / -x
--fill-empty-lines / -E
④格式化选项
参数命令
在括号内外都加上空格
在括号外加上空格
在括号内加上空格
只在括弧头部添加一个空格
移除括号内外的空格
删除函数方法里多余的空行
以空格对齐填充前一行空行
参数说明
让else语句块下起一行
让else if 语句拆开缩进
自动补充括号,默认在条件语句后紧接括号
自动补充括号,并且保持括号与语句在一行
维持一行里的多条语句不变
不破坏一行里面的块
转换TAB 为空格
使指针或者引用符靠近变量类型
使指针或者引用符在变量类型和变量名称中间
使指针或者引用符靠近变量名称
指定为C/C++代码格式化
指定为C#代码格式化
指定为JAVA 代码格式化
--break-closing-brackets / -y
--break-elseifs / -e
--add-brackets / -j
--add-one-line-brackets / -J
--keep-one-line-statements / -o
--keep-one-line-blocks / -O
--convert-tabs / -c
--align-pointer=type / -k1
--align-pointer=middle / -k2
--align-pointer=name / -k3
--mode=c
--mode=cs
--mode=java
把编辑器集成到Tornado中去中去中去中去
我们就以Source Insight为例进行说明,首先我们在Tornado菜单中的Tools->Options中选择External Editor标签页,在command中输入下面的命令:
D:Source Insight -i +$lineno $filename 其中加粗的部分是Source
Insight所在的实际路径,这个可以通过右边的Browse按钮进行浏览选择;-i表示只允许打开一个Source Insight程序;如果勾选了下面的File Menu复选框,表示从菜单中选择新建一个文件的时候会直接调用Source Insight,如果选择了Project表示从工程中双击文件会直接调用Source Insight,如果选择了Build out
wind则在编译过程的输出窗口双击出现错误的行会直接跳到Source Insight中相应的行(注意要实现这个功能,参数+$lineno 是必须的)。同时最好在Source
Insight中也作一下设置,否则如果在Tornado中对文件进行修改,Source Insight会提示文在外部被修改了,是否要重新装入,比较烦人,所以我们可以把这个提示去掉,方法是在Source Insight菜单中选择Option->Preference中的File标签页,从上向下数去掉第三个复选框即可。 不过必须在Invoke from选项里,勾选Project才行的
发布者:admin,转转请注明出处:http://www.yc00.com/news/1688906175a182235.html
评论列表(0条)