AutoHotkey批量L版代码转H2的vim脚本

时间:2021-05-27 05:07:14

原脚本尽量用表达式的语法写,错误会比较少,比如"If a=", "fun(a=1)"这种语法在V2会出错
文件放vim的autoload目录下,可使用以下map使用
nnoremap <buffer><F5> :call L1_L2#main()<CR>
使用方法:打开代码,运行map即可。

使用工具前做的事

  • 函数默认参数=要改成:=
  • {不要写到函数后面,而是单独另起一行(下面两句MAP可方便查询)

nnoremap <buffer><Leader>/= /\v^\s*\w+\(.{-}[^:]\zs\=<CR>
nnoremap <buffer><Leader>/] /\v\)\s*\zs\{(\s*;.*)?$<CR>

使用工具后,以下内容需手动调整

  • 数字如果是字符串,比较会出错,比如"28"<"3"为True
  • 表达式包括带逗号的函数,分两行写(不好判断)

ToolTip,% str . fun(arr, "")
改成
str .= fun(arr, "")
ToolTip,% str

  • Process Exist|ClipWait等很多函数原用ErrorLevel判断,现用函数返回值判断
  • SysGet参数为数字,手动处理
  • Gui(直接注释了)
  • FileAppend对*的处理
  • 伪数组相关

"RegExMatch带输出的结果 m→m[0], m1→m[1]

  • 正则P)选项失效
  • WinGetList
  • "SubStr如果第2个参数为负数,则数值-1(原来为-1,则改成-2,附上搜索正则(<F8>))
  • nnoremap <buffer><F8> /\v\c<SubStr>.{-},.*-\d+/e<CR>
  • RegWrite只支持RootKey\SubKey格式

详见附件