February 15, 2020
By: Kevin

emacs中macro的使用

  1. 把js的函数改为sql配置文件
  2. emacs录制macro的方法

把js的函数改为sql配置文件

把js中散落在代码中的sql集中放到一个配置文件中, 需要修改:

  1. 把函数改为sql snippet的名字
  2. 把函数声明改为sql注释
  3. 调整缩进
  4. 去除最后的函数返回部分
  5. 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次宏

参见下面的录屏:

Tags: emacs