在朋友的介绍下使用上了subLime Text 编辑器,发现有很多很好的特性适合在项目中开发lua程序,例如在编辑器中支持项目形式的文件夹管理,非常方便的夸文件跳转,符号查找,跳转到函数定义,往回跳转,编译脚本等等。一个配置好的sublime Text 环境能满足VS以及VAX的很多编辑代码常用功能。subLime Text被 称为专为程序员而生的编辑器的确十分给力。
可以前往 subLime Text 官网 下载subLime编辑器以及查看它的基本编辑功能
下面来详细介绍各功能及lua环境的一些配置方式。
【跨文件跳转】
ctrl + P
可通过fileA@functionB直接定位到fileA下的functionB函数
【符号搜索】
ctrl + R
在subLimeText默认功能中,没有函数列表,貌似现有的插件也没有实现这个功能。但其实使用符号搜索可以基本代替函数列表,在ctrl + R 调出搜索框以后会附带符号列表,列表中就是当前文件定义的各个函数
【一切可修改】
在subLmieText中的设置项,包括快捷键等等都可以通过修改配置表自行设置,主要有Preferences 下的Setting表跟KeyBinding表,还有插件的配置表Package Control Setting。
【命令搜索】
subLime中的各种设置命令,除了可以在上方Menu中通过鼠标点选设置以外,还能通过ctrl + shift + P调出命令搜索框,搜索想要的命令并且调用。例如像修改快捷键表,除了可以通过鼠标点击Preferences -> KeyBindings – Default以外,还可以通过命令搜索框输入key binding,搜索并直接调用该命令,无需需记住各个选项在Menu的位置,也无需鼠标操作,特别适合一些双手时刻不愿离开键盘的键盘党程序员。
【文件夹列表】
在subLimeText中可以把一个文件夹导入到编辑器中,并且以Project的形式去管理这些文件夹。但是在默认的情况下会把文件夹下无论是否文档的文件都扫描进来。不过利用【一切可修改】的特性,我们可以在Preferences下的Setting—Default表下找到”folder_exclude_patterns”、”file_exclude_patterns”、”binary_file_patterns” 这几个值修改从而剔除一些我们不需要在编辑器中关注的文件。这里有一点问题是,导入了文件夹以后,通过右键某个子文件夹Delete Folder删除子文件夹,经常失败。
【字符线】
在大部分脚本编码规范中,我们都会遇到一种情况是尽量避免单行超过80或120个字符这样的情况。在subLime中可以通过View -> Ruler来设置。不过这样设置只是针对当前文本的,如果希望打开每一个文件都有这条字符线,可以通过修改Preferences下的Setting—Default表的”rulers”值,来指定一个总是显示的字符线。
【编译】
想在subLime中集成编译Lua(或其他语言)功能,只需要在Tool->Build System -> New Build System中添加代码
然后在sublime Text文件夹路径下/Packages/ 中新建Lua文件夹,保存为Lua.sublime-build文件即可。
这里”c:/Users/Administrator/AppData/Roaming/Sublime Text 2/compile.exe” 是lua编译器的路径,如果系统的环境变量已经配了lua键值,则可直接写”cmd”: ["lua","$file"]
可以通过Preferences->browse Packages打开sublime Text文件夹
在一切设置好以后,通过ctrl + B 快捷键编译文件。
【强大的插件】
subLime开放API,有许多功能强大的插件,在安装插件前首先要安装一个插件管理器。通过ctrl + `调出控制台,然后在下方输入框输入以下代码:
'Package Control.sublime-package'
;ipp=sublime.installed_packages_path();os.makedirs(ipp)
if
not os.path.exists(ipp)
else
None;open(os.path.join(ipp,pf),monospace!important; font-size:1em!important; line-height:1.1em!important; vertical-align:baseline!important; outline:0px!important; float:none!important; position:static!important; left:auto!important; top:auto!important; right:auto!important; bottom:auto!important; height:auto!important; width:auto!important; direction:ltr!important; display:inline!important">'wb'
).write(urllib2.urlopen(
'http://sublime.wbond.net/'
+pf.replace(
' '
'%20'
)).read())