用Sublime编写Lua脚本

大家好,我是阿赵。

现在很多手游项目使用lua作为热更新的代码脚本,我一直很喜欢用Sublime来写lua程序。喜欢使用它的原因是它的轻量化,因为我经常要同时打开多个项目,Unity和VisualStudio这些软件都比较占用电脑的性能,很多时候会莫名的卡死机。而Sublime打开后占用系统资源不多,打开速度比较快,而功能也比较够用。

使用的版本,建议是Sublime3的最新版,会多了跳转功能和页签滚动。

这里简单的介绍一下用法:

一、文件夹打开

通过OpenFolder菜单,可以打开一个文件夹。一般来说,就和VS打开一个项目有点类似,可以在项目内进行类的查找、方法查找、跳转、查看引用等操作。

不过由于打开的文件里面可能会有一些我们不需要的文件,比如Unity引擎自动生成的meta文件,这时候可以设置过滤掉它。

在菜单找到Settings,然后打开

会看到左边是默认的设置,然后可以在右边添加我们自己的设置。

在左边搜索file_exclude_patterns,会发现原来也有一些过滤的扩展名设置

把他们复制到右边,然后在后面加上"*.meta"

bash 复制代码
{
	"file_exclude_patterns": ["*.pyc", "*.pyo", "*.exe", "*.dll", "*.obj","*.o", "*.a", "*.lib", "*.so", "*.dylib", "*.ncb", "*.sdf", "*.suo", "*.pdb", "*.idb", ".DS_Store", ".directory", "desktop.ini", "*.class", "*.psd", "*.db", "*.sublime-workspace","*.meta"],
}

这样搜索的时候,就不会再匹配到meta文件了。

二、查找和跳转功能

1、查找

查找功能的用法很简单,如果想在当前的文件里面查找,快捷键就是Ctrl+F。

如果要在打开的整个文件夹里面查找,快捷键是Ctrl+Shift+F。

2、跳转

Sublime有很多跳转功能,在Goto菜单栏可以查看得到。

比较常用的是Ctrl+P,可以搜索文件夹里面的文件名

还有Ctrl+R,可以搜索一个代码里面的方法名

或者Ctrl+Shift+R,可以搜索整个文件夹里面所有代码里面的方法名

自Sublime3某个版本开始,支持了代码的跳转,类似于VS那样,在调用方法的地方按F12可以跳转到该方法。还可以把鼠标悬停在方法上,看哪里调用了这个方法。这个功能Sublime2是没有的,如果你在用Sublime也没有发现这个功能,可以用Sublime自带的更新功能,把版本更新到最新就行。

如果想按着Ctrl键然后鼠标点击方法名来跳转,可以这样做:

在Preferences菜单下找到Browse Packages:

在打开的目录里面,找到Default.sublime-mousemap文件,如果没有这个文件,就自己新建一个txt文件,然后改成这个名字。

在这个文件里面输入以下内容:

bash 复制代码
Default.sublime-mousemap
[
  {
    "button": "button2",
    "count": 1,
    "modifiers": ["ctrl"],
    "command": "jump_back"
  },
  {
    "button": "button3",
    "count": 1,
    "modifiers": ["ctrl"],
    "command": "jump_forward"
  },
  {
    "button": "button1",
    "count": 1,
    "modifiers": ["ctrl"],
    "press_command": "drag_select",
    "command": "goto_definition"
  }
]

这里的button1是鼠标左键,button2是鼠标右键,button是鼠标中键。

我这里实现的功能是,按着ctrl键再按鼠标左键,就执行了goto_definition操作,也就是相当于F12。然后加多一个press_command用于drag_select操作,也就是拖动选择文字。如果不加这个,按着ctrl的时候就不能框选文字了。

然后按着ctrl键再按鼠标右键,是执行了jump_back操作,意思是跳到上一个操作的位置。

按着ctrl键再按鼠标中键,是执行了jump_forward操作,意思是跳到下一个操作的位置。

这样设置了之后,就可以通过鼠标来执行跳转,不需要按F12跳方法,也不需要用默认的Alt+减号键来跳转上一个操作了。

三、Lua预编译

用Sublime来写lua,可以通过预编译功能来检查语法错误:

比如我这个代码里面写少了一个end,就会提示某个类的哪一行,因为什么原因而报错

想使用这个功能,电脑上面先装一个Lua环境,我这里装了一个不是最新的版本:

装好之后,在cmd命令行控制台输入lua,应该可以看到lua版本

如果不行,就设置一下环境变量path,加入lua的安装路径。

然后回到Sublime,在Tools/BulidSystem里面找到Lua:

再到想检查的lua文件,按Ctrl+B,就能预编译了。

如果在BuildSystem里面没有找到Lua,也可以自己新建一个:选择New Build System

然后在新建的文件里面输入

bash 复制代码
{
"cmd": ["lua", "$file"], 
"file_regex": "^(?:lua:)?[\t ](...*?):([0-9]*):?([0-9]*)",  
"selector": "source.lua"  
}

最后保存成MyLua.sublime-build

这时候就可以看到刚才新建的MyLua可以选择了

再次尝试Ctrl+B,如果有错误,就会得到提示,如果没有错误,就能看到Finished时间


相关推荐
ONLYOFFICE1 小时前
ONLYOFFICE 文档与桌面编辑器 9.2 版本更新说明
人工智能·编辑器·onlyoffice
海哥201916 小时前
原创Lua脚本压缩HTML网页源码,节省60%流量和带宽,找老板加薪
lua
金融小师妹18 小时前
基于LSTM趋势预测的白银价格突破58美元阈值,年度累计涨幅超100%的强化学习驱动分析
大数据·人工智能·编辑器·1024程序员节
geekmice18 小时前
thymeleaf处理参数传递问题
开发语言·lua
geekmice1 天前
Thymeleaf传递复杂对象参数解决思路
开发语言·lua
Xiaok10181 天前
VSCode 报错 “No module named ‘torch‘“
ide·vscode·编辑器
大江东去浪淘尽千古风流人物1 天前
【MSCKF】StateHelper 学习备注
vscode·学习·性能优化·编辑器·dsp开发
亮子AI1 天前
【Tiptap】怎样输入/粘贴 Markdown 到编辑器里?
编辑器·tiptap
飞火流云2 天前
vscode Linux下编译失败找不到文件
ide·vscode·编辑器
Piink2 天前
VSCode基本操作
vscode·编辑器