程序员如何提高工作效率(cocos2dx+lua+VS2013+BabeLua)
作为一名开发者,我觉得对自己使用的工具要非常熟悉,要能够非常熟练的使用。
下面谈谈我在平时工作中使用的工具及一些经验。
1. 我工作中使用的工具
开发工具:
常用:VS2013+BabeLua
偶尔使用:Cocos Code IDE
UI工具:Cocos Studio UI
打包工具:Texture Packer +一系列python脚本
版本管理器:svn
2. 开发工具的选择理由
我选择常用VS2013+BabeLua,原因有三:强大的编辑功能、强大的查找功能,以及强大的提示功能。
我选择偶尔使用Cocos Code IDE主要原因是:VS2013+BabeLua的断点调试不够理想,有时会出现调试时断点失效的情况,而Cocos Code IDE在断点调试这方面就显得很优秀,目前我还没有遇到过其断点断不进的情况。
然而,我平时的调试一般还是首先选择VS2013+BabeLua,因为能看到c++对象的内容,而Cocos Code IDE只能看到lua对象的内容。
3. 关于VS2013+BabeLua环境的一些比较有用的快捷键
开发过程中如果不适用快捷键,只是单纯的靠鼠标,靠菜单,效果是非常低下的,为了提高开发速度,有必要了解一些常用的快捷键。(显而易见的省去不写了,如Ctrl+A、Ctrl+V等)
Ctrl+1: 打开BabeLua的文件管理器
Ctrl+2: 打开函数和成员变量的窗口
Ctr+p: 查找当前文件中的函数或成员变量
Alt+L: 查找lua文件
Ctrl+L: 删除当前行
Ctrl+Enter: 在当前行的上一行插入一行(写function时经常用到,敲完end后,Ctrl+Enter,然后加一个Tab)
Shift+Ctrl+Enter: 在当前行的下一行插入一行
Ctrl+C: 复制当前行(只要把光标停在这一行就行,不要选择,否则就只复制选择的内容了)
Ctrl+C, Ctrl+V: 在当前行的下一行复制本行(下下行会多出一个空行,可以接着敲一个Ctrl+L删除)
Ctrl+左右箭: 跳过单词(相当于vim中的b与e)
Ctrl+PageUp: 光标跳到当前屏幕的最上方(只是光标移动,代码不动)
Ctrl+PageDown: 光标跳到当前屏幕的最下方(只是光标移动,代码不动)
Shift+组合键: 选中区域(想脱离鼠标这个快捷键不错)
Shift+Alt+组合键: 选中区域,列选择
Ctrl+F: 查找并高亮(高亮还是蛮好的,可以查当前变量在当前函数的使用情况)
F3: 查找的内容的下一个出现的地方(尽量用这个代替Ctrl+F之后的Enter)
Shift+F3: 查找的内容的上一个出现的地方
Ctrl+K,Ctrl+K: 在当前行打个书签(或取消书签)
F2: 跳到下一个标签
Shift+F2: 跳到上一个标签
Ctrl+K,Ctrl+L: 取消所有书签(分析完了,可以取消所有书签,以免影响下面的分析)
Ctrl+H,Ctrl+H: 在当前行标记任务或取消当前行的任务(我们在工作中经常容易被打断,此时不妨在当前行做个标记,等解决完其他问题后再从任务列表中回来继续做未完成的事;另外,在写一个新的模块式,我们先搭框架,然后可以在每个尚未写的函数处写一行TODO注释,然后用Ctrl+H,Ctrl+H记到任务列表中,任务完成再删去该任务)
Ctrl+K,Ctrl+F: 自动调整代码缩进(该快捷键其实还有个附加功能,即查语法错误,选中代码的一块区域,如果理论上可缩进,而实际上却没有缩进,这段代码中肯定有语法错误,如果已知某个文件中有语法错误,则可以利用此快捷键二分查找)
Ps:可以打开VS2013的滚动条看代码缩略图,如果上面有红点点,不是打断点就是有语法错误。既然这里谈到调试,再说一个小技巧:将--[["--[[]]加到lua代码中,如果能消除语法错误,则可以知道在此之前某个地方的引号或多行注释没有结束。
4. 给VS2013添加外部工具
我工作了一段时间后,发现VS2013有时会有一些莫名其妙的问题,比如:查找功能没法用了,怎么按Ctrl+F都无效;莫名其妙进入insert模式了(那时候我还不知道按Insert)能解决该问题,等等。那时候我其实一边用VS2013,一边也在用sublime,但因为VS2013实在太强大,我也只是在需要的时候才用sublime。
但让我不爽的有两点:
1)每次都要单独打开sublime,然后将文件夹加进去,要不然全局查找及查找文件功能就会失效;
2)可能打开的应用程序太多了,任务栏可能会把sublime移到后面去了,我经常用的两个应用程序需要我不停的用鼠标在任务栏中进行切换。
我希望当VS2013非正常工作的时候能用sublime打开当前文件,并且鼠标就在当前行,当前列,我不希望我之后在任务栏中通过鼠标频繁的切换窗口。
经过网上搜索,总算找到了一个方法,就是给VS2013添加外部工具。
步骤:Tools →External Tools→Add,
具体配置请看下图:
此时将sublime移到最上面,这样比较方便配快捷方式:
点击Tools可以发现sublime已经加好了:
接下来就是给sublime加个快捷方式,步骤如下:
Tools→Customize→Keyboard
在Show commands containing下输入:tools.externalcommand(中文环境需输入:外部工具)
选中Tools.ExternalCommand1,点击Press shortcut keys下面的输入框,按下你想分配的快捷键,然后点击Assign,再点击OK即可。(注意,此处分配的快捷键可能会与现有的快捷键相冲,此时应换一个快捷键分配)。
再次点击Tools,发现sublime已经有快捷键了:
接下来测试下:
注意此时光标的位置,按下快捷键Alt+S:
注意此时光标的位置,可以看到,我们成功了。
同理,可以用此方式给VS2013增加其他的外部工具,例如:
1) 我在内网的开发机中就装了sublime打开资源res文件夹的工具,因为有时出现的bug是某图片未找到,而该图片可能是打包到plist中的,此时我就需要用sublime打开res文件夹全局搜索。
2) 使用python脚本打包需要启动cygwin,到相应的目录运行脚本,这些步骤都可以简化为一个快捷方式,给VS2013添加个外部工具即可。
3) Tortoise打开svn太麻烦,我希望一键update,给VS2013添加个外部工具即可,此时需要注意的是,不能只update代码,还需要update资源,然而,在我们当初配的时候是lua文件夹中一个.svn,res文件夹中一个.svn,也就是说需要在两个地方update,而不能在他们的共同的父文件夹中update。我们可以写个bat文件,然后将此bat文件配成外部工具即可。
4) 我还希望一键svn commit,可以,同3),不过需要注意的是,svn commit 需要制定修改内容,我们只能写成svn commit –m “”,即修改内容为空,好处是快,坏处是没有commit的log了,对项目来说不是好事,所以建议commit还是单独打开终端,手动输入svn命令,可以配个打开终端的快捷键。尽管有win+R的快捷键,但该快捷键不会制定到初始目录,而自己配的VS外部命令可以指定初始目录。
5. 还想更快?
上面的快捷键还不够快?不要紧,VS2013还有一个强大的功能没有介绍呢,那就是工具箱。如果默认没打开,可以按快捷键Ctrl+Alt+X打开,
这个有什么用呢?举个例子,我们在开发一个新的模块的时候,必然涉及到创建类,比如,前端经常需要创建一个基于json的类,其实创建类的代码框架是一样的,只是不同的类需要增加不同的功能。这个时候就可以创建一个类名为classname的模板类,然后全选,鼠标拖进工具箱,以后需要的时候双击就行,然后Ctrl+H替换下类名。这样就节省了创建类的事件,将更多的精力花在写功能上了。