求 vim 大神看一个问题, js 行尾的注释改 js doc 注释 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
HytonightYX
V2EX    程序员

求 vim 大神看一个问题, js 行尾的注释改 js doc 注释

  •   HytonightYX 2020-12-25 20:20:56 +08:00 2514 次点击
    这是一个创建于 1799 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如图

    image.png

    现在接手一个老项目,里面大量的注释风格混用,为了 ts 的智能提示,需要统一改为 js DOC 风格

    想到 vim 应该可以比较好地完成这个事情,但是本人 vim 目前处于初学阶段,研究了会搞不出来,来问问 V 友

    12 条回复    2020-12-26 17:18:29 +08:00
    billlee
        1
    billlee  
       2020-12-25 21:37:22 +08:00
    大规模的修改 vim 不好搞的,万一有个字符串字面值里面有 // 怎么办?这种事情还是交给专业的 IDE 去做
    vim 擅长的是 ad hoc 修改需求
    joysir
        3
    joysir  
       2020-12-25 21:44:20 +08:00   1
    vim 宏可以解决,建议先看一遍 vim 宏的基本概念,理解之后再看以下内容。


    光标放到 name 行首,在此行录制一个宏,如下步骤按键:
    qa - 录制一个名为 a 的宏
    $ - 到行尾
    v - 选中模式
    F/ - 从后找到第一个 /
    l - 小写的 L,向左移动一位
    x - 剪切注释内容
    O - 大写的 O:在当前行之上插入一行

    接着在新开启的行正常输入注释格式(尽量减少出错,一次性完成),并按 p 粘贴刚刚剪切的注释

    完成 name 字段的格式之后,继续按键:
    j - 移动到下一行
    0 - 回到下一行的行首
    q - 结束名为 a 的宏


    此时,有一个名为 a 的宏录制了将行内注释转换为文档注释并自动跳转到下一行的操作。

    使用宏:
    - 单个操作:可以在 age 字段的行首,按 @a 回放宏,完成 age 注释的转换。
    - 批量操作:例如 10 个字段,可以在第一个需要处理的字段按 10@a 执行 10 次宏。
    joysir
        4
    joysir  
       2020-12-25 21:45:48 +08:00
    @joysir 说明下,格式不太好看:短横线之后是该宏的说明,之前是具体的宏操作。
    crs0910
        5
    crs0910  
       2020-12-25 21:46:40 +08:00
    .s,\(.*\)//\(.*\),\r/**\r* \2\r*/\r\1

    慎用
    Kasumi20
        6
    Kasumi20  
       2020-12-25 21:47:54 +08:00
    Node.js 处理一遍呗
    crs0910
        7
    crs0910  
       2020-12-25 21:55:45 +08:00
    crs0910
        8
    crs0910  
       2020-12-25 22:10:06 +08:00   1
    也可以用 typescript 的 api 自己 transform
    https://github.com/dsherret/ts-morph
    lululau
        9
    lululau  
       2020-12-25 22:17:12 +08:00 via iPhone
    服了 1 楼了,以为你要说交给脚本去处理呢,还大型 ide,哪个大型 ide 有这样的功能?哪个大型 ide 比 vim 或脚本更适合处理这个问题
    lululau
        10
    lululau  
       2020-12-25 22:22:28 +08:00   1
    fastmod '^(\s*)(.*) // (.*)' '$1/**'$'\n''$1 * $3'$'\n''$1 */'$'\n''$1$2' demo.js
    learningman
        11
    learningman  
       2020-12-25 23:34:33 +08:00
    @lululau JB 家的真有这玩意儿,refactor
    HytonightYX
        12
    HytonightYX  
    OP
       2020-12-26 17:18:29 +08:00
    @joysir 谢谢了,用你的办法解决了
    @lululau 确实呢,我也是第一时间想到 vim
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     991 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms
    UTC 18:45 PVG 02:45 LAX 10:45 JFK 13:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86