AutoHotkey批量L版代码转H2的vim脚本
原脚本尽量用表达式的语法写,错误会比较少,比如"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格式
详见附件