在Scite里用Astyle格式化代码

在 VC6.0 里很喜欢用 Alt+F8 的功能,它能够快速格式化代码,Scite中没有这个功能。今天看它的配置文件发现这么两行: command.name.0.*.cxx=Indent command.0.*.cxx=astyle -tapO $(FileNameExt) 用来缩进的? 查了一下 astyle, 原来我需要的就是这个功能.。 下载 astyle 最新版, 解压之后把bin目录下的 AStyle.exe 复制到C:/windows, 然后,修改一下配置文件 cpp.properties,(这一步可以忽略), 如下: command.name.0.*.cpp=Indent command.0.*.cpp=astyle --style=ansi $(FileNameExt) OK, 现在可以先选中文本然后Ctrl+0快速格式化代码了。 PS: 其实要在Scite里面使用Astyle工具,只需要在astyle官网astyle中下载一个可执行程序astyle.exe,然后放到搜索路径中,比如C:/windows, 即可。修改配置文件是为了让格式化更漂亮,这里推荐用 --style=ansi 格式。 AStyle安装使用可以阅读刚才下载文件里的相关文件(很详细)。 Astyle用法: astyle --style=ansi filename.c

2015年5月10日 · 1 分钟 · Jid

把SciTe打造成更强大的程序员专用编辑器

SciTe是一款很小巧又很强大的编辑器,非常适合程序员使用。 大家了解Scite通常是因为使用AutoIt才间接知道Scite,其实,Scite的使用范围要广得多。 现在开始配置Scite,使得它更适合编写调试程序, (1)首先安装GCC编译器,并且把gcc程序放在path里 怎么安装gcc呢?可以安装MinGW,可以安装Dev-Cpp之类的包含gcc的IDE,关键是把gcc程序目录加入path (2)安装AStyle,代码格式化工具 参考本空间内文章:http://hi.baidu.com/linccn/blog/item/65916110da1f0566ca80c4ee.html 或许你已经安装了Astyle,但我用的是原版Scite,所以需要单独安装Astyle。 (3)编辑“选项”->“用户配置文件”或“本地配置文件”,加入以下代码: ################# #以下取自全局设置.properties ################# #括号匹配模式 #braces.sloppy=0 #默认文件名后缀 default.file.ext=.txt #代码自动补全 autocompleteword.automatic=1 #编辑窗口字体 font.base=font:Courier New,size:12 #使用等宽字体 font.monospace=font:Verdana,size:10 ################# #以下取自cpp.properties ################# #To make the Go command both compile(if needed) and execute, use this setting: #对C程序,运行脚本命令(即F5),可以在需要的时候先编译后执行,默认行为是只运行不编译。如果之前没有用Ctrl+F7编译过,则无法运行。 command.go.needs.*.c=gcc $(ccopts) -std=c99 $(FileNameExt) -o $(FileName)

2015年5月8日 · 1 分钟 · Jid

Matlab最小化安装

Matlab显然是个庞然大物,对于普通用户及一般程序员来讲,通常只需要安装如下组件: Matlab Matlab Compiler Symbolic Math Toolbox Over.

2015年5月6日 · 1 分钟 · Jid

openSUSE: could not find 'kfmclient executable' 解决办法

解决办法: 重新安装 konqueror.

2015年4月26日 · 1 分钟 · Jid

推荐两个很酷的在线多语言编译器

这里推荐两个很酷的在线编译器: http://codepad.org/ http://ideone.com/ 这两个都非常酷, 个人更喜欢codepad,可以一边编辑代码一边查看结果; ideone也很酷,功更能与codepad基本一样,最酷的是它的代码可以直接链接到StackOverflow

2015年4月25日 · 1 分钟 · Jid

测试处理器是大端序还是小端序(Big Endian or Little Endian)

下面的程序可以用来测试是大端序还是小端序: /* * How can I determine whether a machine'sbyte orderis big-endian or little-endian? * */ #include <stdio.h> int main(int argc, char const *argv[]) { /* method 1 */ int x = 1; if(*(char *)&x == 1) printf("little-endian\n"); else printf("big-endian\n"); /* method 2 */ { union { int i; char c[sizeof(int)]; } unx; unx.i = 1; if(unx.c[0] == 1) printf("little-endian\n"); else printf("big-endian\n"); } return 0; } 什么是大端序/小端序啊? 出处是“爱丽丝梦游仙境”里的鸡蛋的吃法,从小端开始吃还是从大端开始吃,如下图: 参考: wikipedia

2015年4月19日 · 1 分钟 · Jid

开始使用C++11的9个理由

如果你的代码工作正常并且表现良好,你可能会想知道为什么还要使用C++ 11。当然了,使用用最新的技术感觉很好,但是事实上它是否值得呢? 在我看来,答案毫无疑问是肯定的。我在下面给出了9个理由,它们分为两类:性能优势和开发效率。 获得性能优势 理由1:move语义(move semantics)。简单的说,它是优化复制的一种方式。有时候复制很显然是浪费的。如果你从一个临时的string对象复制内容,简单的复制指针到字符缓冲区将比创建一个新的缓冲区再复制要高效得多。他之所以能工作是因为源对象超出了范围。 然而,在这以前C++并没有判断源对象是不是临时对象的机制。move语义通过除了复制操作外还允许你有一个move构造函数(move constructor)和一个move赋值运算(move assignment)符来提供这个机制。 你知道吗?当你在Visual Studio 2010中使用标准库中的类如string或vector时,它们已经支持move语义了。这可以防止不必要的的复制从而改善性能。 通过在你的类中实现move语义你可以获得额外的性能提升,比如当你把它们存储到STL容器中时。还有,move语义不仅可以应用到构造函数,还可以应用到方法(如vector的push_back方法)。 理由2:通过使用类别属性(type traits,如is_floating_point)和模板元编程(template metaprogramming,如enable_if template),你可以为某些特定的类型定制模版,这可以实现优化。 理由3:哈希表现在已经是标准实现的了,它提供更快速的插入、删除和查找,这在处理大量数据时很有用。你现在可以随便使用unordered_map, unordered_multimap, unordered_set 和unordered_multiset这几种数据结构了。 提高效率 提高效率不仅都是在代码性能方面,开发时间也是宝贵的。C++ 11可以让你的代码更短、更清晰、和更易于阅读,这可以让你的效率更高。 理由4:auto关键字可以自动推断类型,所以下面的代码: vector<vector<MyType>>::const_iterator it = v.begin() 现在可以很简单的写成: auto it = v.cbegin() 尽管有些人会说,它隐藏了类型信息,在我看来它利大于弊,因为它减少了视觉混换并展示了代码的行为,还有它可以让你我少打很多字! 理由5:Lambda表达式提供了一种方法来定义匿名方法对象(实际上是闭包),这是代码更加线性和有规律可循。这在和STL算法结合使用时很方便: bool is_fuel_level_safe() { return all_of(_tanks.begin(), _tanks.end(), [this](Tank& t) { return t.fuel_level() > _min_fuel_level; }); } 理由6:新的智能指针(smart pointer)替换了有问题的auto_ptr,你可以不用担心内存的释放并移除相关释放内存的代码了。这让代码更清晰,并杜绝了内存泄露和查找内存泄露的时间。 理由7:把方法作为first class object是一个非常强大的特性,这让你的代码变得更灵活和通用了。C++的std::function提供了这方面的功能。方法提供一种包装和传递任何可调用的东西-函数指针, 仿函数(functor), lambda表达式等。 理由8:还有许多其它小的功能,如override、final关键字和nullptr让你的代码意图更明确。对我来说,减少视觉混乱和代码中能够更清楚地表达我的意图意味着更高兴、更高效。 另一个开发效率的方面是错误检测。如果你的错误在运行时发生,这意味着你至少需要运行软件,并可能得通过一系列步骤来重现错误,这需要时间。 C++ 11提供了一种方法来检查先决条件并尽早的在可能的时机捕获错误-编译过程中,在你运行代码前。这就是理由9。 这是通过静态断言(static_assert)和类别属性模版实现的。这种方法的另一个好处是,它不需要占用任何的运行时开销,没有什么性能损失! 现在开始掌握C++ 11 在C++ 11标准中除了上描述的还有更多的改动和新功能,它需要一整本数来描述。不过,我相信它们是值得你花时间去学习的。你将省去以往花在提高效率上的时间。很多主流的编译器已经开始支持C++ 11的一些标准了。还等什么?开始吧! ...

2015年4月13日 · 1 分钟 · Jid

修改Firefox回退键(backspace)

在Firefox内后退或前进最好用 Alt+方向键 或 Ctrl+[ 、Ctrl+],这也是在Linux/MacOS上的习惯。 但是,在Windows上大家更习惯Backspace键。 下面修改Firefox的配置使得在Linux上也可以用Backspace进行回退。 在地址栏内输入about:config,然后在打开的界面里搜索关键字backspace,通过双击把值改为0即可。 另外,贴一个Firefox的全部快捷键: http://www.mouserunner.com/FF_Shortcuts1Printable.html

2015年4月11日 · 1 分钟 · Jid

Firefox切换中文或英文界面

安装Firefox的时候因为不喜欢火狐中文版自带的乱七八糟的插件,所以选择安装了英文版的。 现在想切换到中文版,毕竟中文版的字体看着习惯。 为了实现中英文切换,需要从官网上安装语言组件,然后改一个设置,很简单。 英文转中文 安装中文语言组件 这里以16.0.1为例进行说明,你需要找个自己对应的版本。 ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/16.0.1/win32/xpi/ 在上面找到zh-CN.xpi,点击后安装 改设置 在地址栏内输入about:config,确认后搜索 general.useragent.locale,改为 zh-CN 保存后重启Firefox,现在界面就变成中文的了。 中文转英文 跟上面的过程很像,先安装en-US.xpi,然后把 general.useragent.locale 改为 en-US 即可.

2015年4月7日 · 1 分钟 · Jid

Firefox 开启或关闭 javascript

升级到Firefox23.0后突然发现javascript被禁用了,浏览很多网站都出问题,而且 Firefox23.0在首选项中取消了javascript的设置项。 郁闷了一天后,突然想到一个稳妥的办法,改config,步骤如下: 在地址栏中输入about:config, 然后选“我保证会小心”,进入设置项页面 在出现的搜索栏内输入javascript,在下面的列表中会看到javascript.enabled被设置为false 双击刚才看到的条目,把选项改为true! 要禁用(你确定?)javascript,则再双击一次,改为false即可! 不需要重启Firefox,现在javascript已经被启用了!

2015年4月6日 · 1 分钟 · Jid