标签归档:工具篇

SublimeText配置

在我的一台开发机上在ubuntu系统下使用eclipse,经常会出现死机,不得不寻求其它的代码编辑器。windows下大名鼎鼎的source insight放到linux下就状况不断。后看到chromium项目推荐了sublime text这款编辑器,用起来感觉还不错。下面记录一下使用过程中的一些设置,网上各种资料比较凌乱,所以就稍微整理一下,供自己今后翻阅。

1. 过滤不相关的文件

可以针对某个特定的工程,进入菜单project | Edit Project,编辑当前工程的sublime-project文件,加入两个过滤器,folder_exclude_patternsfile_exclude_patterns,如下所示:

"folders":
[
    {
        "path":"/home/alex/android/source/android4.2",
        "file_exclude_patterns":
        [
            "*.o"
        ],
        "folder_exclude_patterns":
        [
            ".repo"
        ]
    }
]

2. 模拟eclipse的快捷键

在eclipse中,有几个快捷键用的非常多,分别为:

CTRL+TAB 头文件和c/c++文件之间切换
CTRL+SHIFT+R 对话框中输入文件名(有联想功能),快速打开文件
CTRL+o 输入方法(函数)名,可快速定位到方法(函数)
CTRL+l 输入行号,快速定位到指定行
CTRL+h 打开文件搜索对话框


可以修改sublime text的Key Bindings达到模拟eclipse快捷键的效果,有两个配置项可以修改,一个是Key Bindings-Default,一个是Key Bindings-User,最好修改后一个配置文件。进入菜单Preferences | Key Bindings - User,加入如下行:

[
{ "keys": ["ctrl+shift+r"], "command": "show_overlay", "args": {"overlay": "goto", "show_files": true} },
{ "keys": ["ctrl+o"], "command": "show_overlay", "args": {"overlay": "goto", "text": "@"} },
{ "keys": ["ctrl+l"], "command": "show_overlay", "args": {"overlay": "goto", "text": ":"} },
{ "keys": ["ctrl+t"], "command": "show_overlay", "args": {"overlay": "goto", "text": "#"} },
{ "keys": ["ctrl+tab"], "command": "switch_file", "args": {"extensions": ["cpp", "cxx", "cc", "c", "hpp", "hxx", "h", "ipp", "inl", "m", "mm"]} }
]

3. 针对项目的代码风格设置

chromium的项目的代码缩进为两个空格,而其它项目的代码缩进一般为4个空格,所以我就希望针对特定的项目进行代码风格设置,方法是编辑当前工程的sublime-project文件,加入如下行(和folders项平级):

"settings":
{
"tab_size": 2,
"translate_tabs_to_spaces": true,
"trim_trailing_white_space_on_save": true,
"draw_white_space": "all"
}

4. 插件集合

sublime_text的插件扩展机制非常强大,已经有很多人出于不同的需求,开发出各种插件。首先说一下插件的安装。

按ctrl+shit+p显示命令列表,在其中输入install,选择Package Control: Install package,接着就会出现插件列表,选择你所需要的插件即可。

打造称手的开发工具-Eclipse篇

古人云,工欲善其事,必先利其器,孙悟空为了找到称手的兵器,苦苦寻觅,终于寻得定海神针一枚,打造出如意金箍棒,但有多少程序员能够静心专研手头的工具呢?从事软件开发多年,接触了各种各样的软件开发工具,远的不说,代码编辑工具就接触过不少,Turbo C/Visual Studio/C++ Builder/Source Insight/UltraEdit/Vim等,但都没有精通,更别说按照自己的喜好增加一些脚本/插件。转入Android开发后,又开始接触Eclipse,发现Eclipse真是个好东西。但要让自己运用的得心应手,还需要专研一些设置。本文就是记录一下我在开发过程中的一些Eclipse设置。

1. 过滤某些文件/文件夹

阅读android源码(C++)及chromium源码时,选择新建工程的选项: Makefile Project with Existing Code。众所周知,android和chromium的源码超级大,Eclipse打开这些大工程,在Refresh Workspace和Indexer时非常慢,而且极占CPU。通常情况下,我们可能只对其中的部分文件感兴趣,有必要进行一下过滤。Eclipse提供了Include Filter和Exclude Filter,顾名思义,Include Filter就是只包含满足条件的文件/文件夹,Exclude Filter则是排除满足条件的文件/文件夹。可以定义多个Filter。方法如下:

Project Explorer中,选定某个目录,点击右键,选择Properties,找到Resource Filters,点击Add…:

Eclipse_Filter

可以选择按Name/Project Relative Path/Location/Last Modified/File Length等等进行匹配,我一般使用Project Relative Path进行匹配,也可以使用*.svn这样的通配符过滤掉svn目录。


2. 导入google c++编程风格

chromium C++代码采用的是google c++ code style。google c++编码规范被李开复称为最好的C++编程规范,有趣的可以到这里看看,条目非常多。

Eclipse也非常强大,可以支持不同的code style,而且这些style可以自定义,还可以导入/导出(需要注意的是,Eclipse的code style主要针对代码缩进/空格/括号位置,并不涉及变量命名等等)。google也提供了针对Eclipse的xml配置文件,我们只需导入到Eclipse即可,省去繁琐的配置。下面就说说导入方法。

  • 从https://google-styleguide.googlecode.com/svn/trunk/下载eclipse-cpp-google-style.xml
  • 打开Eclipse,选择Window | Preferences 菜单。
  • 在弹出对话框左边中选择C/C++ | Code Style。然后点击后侧的Import…按钮
  • 选择所下载的eclipse-cpp-google-style.xml文件,可以看到Select a profile下面的下拉框中多了Google C++选项。
  • 点击Apply按钮

3. 常用快捷键

CTRL+TAB头文件和c/c++文件之间切换
CTRL+SHIFT+R对话框中输入文件名(有联想功能),快速打开文件
CTRL+SHIFT+R对话框中输入文件名(有联想功能),快速打开文件
CTRL+o输入方法(函数)名,可快速定位到方法(函数)
CTRL+l输入行号,快速定位到指定行
CTRL+h打开文件搜索对话框

4. 保存文件时去掉行尾的空格

在gerrit中review代码时,如果行尾包含空格,就会显示出刺眼的红色。同样,使用git diff命令查看对文件的修改,如果行尾包含空格,也会显示刺眼的红色。在Eclipse中可以通过如下设置,自动去掉行尾的空格:

点击菜单Window -> Preferences -> C/C++ -> Editor -> Save Actions

然后勾选 Remove trailing whitespace

Cygwin/X介绍

在开发基于Webkit的浏览器这个过程中,深深体会到拥有一台强劲的开发机是多么重要,以我的本本(Core Duo T2300, 2.5G内存)为例,全编译QtWebkit需要三四个小时,如果不是全编译,仅仅最后的链接过程就要花上十几分钟。一般来说,公司一般都配备了性能强劲的服务器,服务器通常安装linux系统,作为文件服务器或者SVN服务器。所以如果能够充分利用服务器进行开发,可以大大加快开发速度。通常我们使用ssh登录到服务器,然后在命令行下工作。这对于编译程序来说没什么问题,但是如果要在服务器上进行调试且程序包含UI呢?下面就介绍一款这样的工具Cygwin/X。

Cygwin/X 是运行在Microsoft Windows上的X Window System实现。Cygwin/X 是Cygwin计划的一部分,可以用Cygwin的标准安装程序进行安装。在Cygwin安装过程中选择X server组件,如下图所示:

image

安装完成后,会创建Cygwin-X | XWin Server启动项,第一次运行XWin Server时,在启动的X-Terminal中运行:

cygserver-config

命令设置NT服务cygrunsrv。接下来添加一个Windows环境变量CYGWIN,其值为server

接下来设置Putty,在PuTTY Configuration中选择Category下的Connection | SSH,勾选Enable X11 forwarding,X display location框中输入localhost:0,如下图:

image

在XWin Server启动的情况下,在ssh命令行下输入gedit,是不是打开了gedit编辑器?