Source Insight基础配置相关代码实例
我们提交的代码,要求不能有多余的空格与TAB键,而且代码是在linux环境中编译和运行的,而我们经常使用sourceinsight编辑代码,因此有必要针对性地配置以省去反复去掉空格和TAB键的麻烦。
我们的配置基本上都在Preference的菜单里,下面逐个介绍如何设置。
处理TAB和空格
- 去掉每行末尾的空格和TAB键:设置Options->Perferences->Files->Removeextrawhitespacewhensaving。
- TAB键可见:设置Options->DocumentOptions->EditingOptions->Visibletabs,就可以在代码里面看到TAB键。
处理换行键
*nix系统和Windows系统文件中的换行符不同。
- *nix系统中的换行符只有一个字符,\n;
- Windows系统中的换行由两个字符组成,\r\n;
这种区别的影响包括
- Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;
- Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
- Linux保存的文件在windows上用记事本看的话会出现黑点。
在linux下,可以使用命令unix2dos把linux文件格式转换成windows文件格式,命令dos2unix把windows格式转换成linux文件格式。
为了保证在Windows环境下打开文件之后仍然保持linxu的文件的显示正确,设置Preference->Other->Defaultfileformat为Unix(LF)。
标题栏显示文件完整路径
这个功能在查看文档路径是非常有用,去掉Preference->Display->Options->Trimlongpathnameswhileelipses。
文件名首字母不要大写
勾选Preference->Display->Options->Showexactcaseoffilenames。
其他设置
将Preference下面的所有tab页都过一遍。
General
- ProjectFileSynchronization->Removemissingfilefromproject选上可以避免因文件找不到而弹出错误对话框;
- 把Misc->Usestricterconfirmationdialog选项去掉可以使确认时不输入”yes”。
Typing
- ourceEditing->Indentcommandsaffect#-preprocessorstatements去掉后(默认值),进行多行缩进时不会影响预处理语句(如#if…#endif)。
- AutoCompletion->Usedetailedcompletionwindow,选上后,联想时可以出现该函数的详细信息。
- AutoCompletion->Insertparemetersforfunctions,去掉后,自动联想不会把整个参数都输出到当前行。
- BrowsinginLists->Matchsyllableswhiletyping(slower)在symbollist框检索符号时是否采用音节匹配方式,如对于函数FindNext,输入find或者next都可以找到该函数。该功能可能导致反应缓慢(视工程和机器配置而定),建议关闭,因为即使在关闭状态下也可以通过先输入空格再输入单词来动态启用该功能。
- 注意BrowsinginLists里其实有两个功能,但一般我们只能看到Matchsyllableswhiletyping这一条,应该是si的菜单设计没有做好,导致在中文windows下不能显示全,另一个功能是Matchmemberswhiletyping,用于打开/关闭按成员变量名来检索类/结构体的功能。
Files
- OpeningFiles->Sharing:Letotherprogramsmodifyfiles,以共享方式打开文件,这个很重要,保证可以在其它编辑中同时编辑该文件。典型的场景就是用ide环境去动态编译调试,而用si静态阅读;
- Customize'Open'Command...,用于设置Ctrl+O打开的页面,默认选项是ProjectFilelistviewinProjectWindow,建议保持默认。
- SavingFiles->PreserveUndodataandrevisionmarksaftersaving,如果发现保存后就不能undo了,请检查该选项是否选中。
- Removeextrawhitespacewhensaving。保存时自动去除每行尾部的空格和tab。建议选中。
Languages
自定义其它编程语言的语法解析,这个…还是另写一篇来讲吧。
ConditionalParsing不要错过了,这里的Conditions功能实在让人喜欢。Conditions是什么意思呢?我们的代码中一般都会有一些开关宏,通过在Conditions中配置这些宏的默认值,可以让si把配置为不开启的宏视为无效代码,从而不进行符号检索。
如果源代码中的开关宏太多,还可以使用ConditionParsing中的ScanFiles来自动找出所有开关宏。
SymbolLookups
没有特别的。
Display
- 显示配置和个人喜好和显示器的状态有关,偶用的x60小本,屏幕资源有限,所以在DisplayElements里把ProjectWindow,StatusBar,ToolBar,ClipWindow都关了,基本用快捷键可以代替它们。
- Options->Horizontalscrollbarsforeachnewwindow。很多大师都教导我们说一行不要写太多代码。在这个指导思想下,我们不需要这个东东。
- Showexactcaseoffilenames。如果看不惯si把所有的文件名首字母都大写就勾上这个选项吧。
- TilesourceanddestinationwindowsforSourceLinkcommands。SourceLink很多时候用于外部命令输出结果的解析(如Make,lint),这个功能会把解析结果与目标窗口自动tile,很实用。
- Trimlongpathnameswithellipses。这个建议不要选中。事实上这个主要影响标题栏,但一般来说标题栏上的空间是充裕的,选上之后往往会令我们不知道所编辑文件的具体位置。
Color
自己配置。
SyntaxDecorations
- 可以把一些符号转换成特殊形式显示,如->转换成→。如果要使用该功能,不能开启SyntaxFormatting->Basics->Useonlycolorformatting。
- Autoannotations下的三个功能都比较有用;
- Showarrowsatgotostatements可以在goto时显示一个向上或向下的箭头,表示是向上goto还是向下goto,不过我们还是尽量不要用goto了。
- Annotateclosingbraceswithend-statement。在”}”后显示标识,表示该”}”与哪个if/switch配对,而下面的Annotateclosingbracesonlyforlongblocks则是一个补充选项,表示只在较长的语句块时才显示标识。
SyntaxFormatting
如果让大家说出喜欢si的几个理由,我想语法着色一定会是其中之一。
- Basics->Useonlycolorformatting。只启用style中关于颜色的设置。其它如粗体、斜体、阴影等都不启用。
- ApplyStylesforLanugageElements。把分类启用style,都选上吧。
- SymbolReferenceLookups->Qualifyreferencestomembers。检测成员的有效性,如果不是类/结构体中的一部分,则不启用style。虽然可能导致性能降低,但还是建议打开。同样Qualifyreferencestofunctions也是。
- 这里有个按钮可以进入DocTypes页面(Options菜单也可以进入),里面有很多重要选项:
- EditingOptions中,Expandtabs,Visibletabs可以帮助我们发现并转换tab。
- Showrightmargint和Marginwidth可以提醒我们是否把一行写得太长。
- SymbolWindow选项建议关闭(因为有快捷键)。
- AutoIndent对话框中,如果没有特别喜好,建议把SmartIndentOptions的两个勾都去掉,同时AutoIndentType选Smart。
其他的没有什么特别的了,最后简单说下si的配置文件。可以通过Options->LoadConfiguration/SaveConfiguration来导入/导出配置,可以导出全部,也可以导出某几个部分(如style)。si的配置有两级,一是全局配置,一是项目配置。出入方便考虑,统一一个配置就好了,在创建项目时选择用全局配置(默认值)。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。