[豆知识] 你所不知道的 Scite - 命令扩展
night_stalker
2010-08-25
Scite 其实是可以用 lua 脚本做各种巨型 IDE 很辛苦才能做的事情的 ……
这是一个 Helloworld 示例,添加功能:Ctrl+D 删除当前行 1 新建一个脚本如下: function line_delete() editor:LineDelete() end editor:函数名称() 对应 scintilla 编辑控件的函数,可以在源码的 scintilla.iface 中找到说明。官网有更详细的 C API 说明,不过要先把全大写的 SCI_XXX 转换成驼峰函数名。 2 properties 中添加的配置项下面的配置项 11 为 command 编号。 command 的编号 1 到 9 自动映射到 ctrl + 1 .. 9 command 编号最大值为 50 # lua 脚本位置 ext.lua.startup.script=D:\editors\wscite\lua\commands.lua # 名字,Tools 菜单会包含各种自定的命令,名字会提示在菜单中 command.name.11.*=Remove Current Line # 调用 lua 中全局函数 line_delete command.11.*=line_delete # lua 子系统 command.subsystem.11.*=3 # 快捷键 command.shortcut.11.*=Ctrl+D # 调用之前不提示保存 command.mode.11.*=savebefore:no 重启 Scite,于是按 Ctrl+D 就可以删除当前行了 …… (待续) |