[豆知识] 你所不知道的 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 就可以删除当前行了 …… (待续)
Global site tag (gtag.js) - Google Analytics