February 15, 2020
By: Kevin
emacs中macro的使用
把js的函数改为sql配置文件
把js中散落在代码中的sql集中放到一个配置文件中, 需要修改:
- 把函数改为sql snippet的名字
- 把函数声明改为sql注释
- 调整缩进
- 去除最后的函数返回部分
- done
修改如下:
从js
export async function queryProgramLogs() {
const sql = `
SELECT m.rowid, p.ProgramId, p.ProgramName, m.UserId, e.time, d.UVData
FROM v2_manual_execution_log mp
LEFT JOIN v2_program_log p
ON mp.ProgramId = p.ProgramId
LEFT JOIN v2_event_log e
ON p.ProgramId = e.parentId
AND e.EventName = $E_START
LEFT JOIN v2_manual_execution_log m
ON p.ProgramId = m.ProgramId
LEFT JOIN
(SELECT DISTINCT(ProgramId), 1 AS UVData FROM v2_uv_data) d
ON p.ProgramId = d.ProgramId
`
return db.queryAll(sql, {
$E_START: events.START,
})
}
到配置文件:
-- :name queryProgramLogs :? :1
SELECT m.rowid, p.ProgramId, p.ProgramName, m.UserId, e.time, d.UVData
FROM v2_manual_execution_log mp
LEFT JOIN v2_program_log p
ON mp.ProgramId = p.ProgramId
LEFT JOIN v2_event_log e
ON p.ProgramId = e.parentId
AND e.EventName = $E_START
LEFT JOIN v2_manual_execution_log m
ON p.ProgramId = m.ProgramId
LEFT JOIN
(SELECT DISTINCT(ProgramId), 1 AS UVData FROM v2_uv_data) d
ON p.ProgramId = d.ProgramId
这种函数有好多个... 改好多个还是挺烦的, 录一个宏来解决
emacs录制macro的方法
C-x (开始一个宏C-x )结束录制一个宏C-x e执行一个宏C-u 10 C-x e执行10次宏
参见下面的录屏: