若SciTE4AutoHotkey,能在新建时自动选编码 为 带BOM的UTF-8 的就省事 省心了。
可通过配置SciTEGlobal.properties、SciTEUser.properties无法解决这个难题,似乎是个bug。
通过菜单 工具 Scite4AutoHotkey settings...设置也只能使新建的文件编码为UTF-8 NO BOM
经过无数次的搜索 以及 研究SciTE的lua配置,终于找到解决问题的方法:
就是在Scite的lua自启动脚本中添加:
--sunwind(1576157)搜集整理
-- event OnClear 完美解决新建文件时默认的文件编码
local oldOnClear = OnClear
function OnClear()
if oldOnClear ~= nil then
if oldOnClear() then
return true
end
end
if props['FileName'] == "" then
--~ 新建时默认采用UTF-8带BOM编码方式
scite.MenuCommand(IDM_ENCODING_UTF8)
--~ 新建时默认采用UTF-8无BOM编码方式
--~ scite.MenuCommand(IDM_ENCODING_UCOOKIE)
end
return false;
end
针对SciTE4AutoHotkey来说,就是找到UserLuaScript.lua文件,加上上述代码重启SciTE4AutoHotkey就可以了。
可以通过右击工具条来编辑UserLuaScript.lua文件
UserLuaScript.lua文件位置
\SciTE\
|_______ SciTE.exe
|_______ SciTE.chm
|_______ \user\
|______ UserLuaScript.lua...
附赠:自动完成() {} [ ] " " %% ' '等
local toClose = { ['('] = ')', ['{'] = '}', ['['] = ']', ['"'] = '"', ["'"] = "'" , ["%"] = "%" }
function OnChar(charAdded)
if toClose[charAdded] ~= nil then
editor:InsertText(editor.CurrentPos,toClose[charAdded])
end
end