vim 编辑 HTML 文件时,如何实现修改<div>名称时,自动修改</div>为对应名称? [tagalong 有 Bug] - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
sdjl
V2EX    程序员

vim 编辑 HTML 文件时,如何实现修改<div>名称时,自动修改</div>为对应名称? [tagalong 有 Bug]

  •  
  •   sdjl 2023-02-23 16:44:32 +08:00 2258 次点击
    这是一个创建于 972 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如有:

    <div> <span></span> </div> 

    当把第一个<div>修改为<p>时,</div>也会自动改为</p>,结果为:

    <p> <span></span> </p> 

    我之前一直用 AndrewRadev/tagalong.vim 插件实现此功能,但我发现这个插件有一个 bug 。

    bug 表现为:

    当我用 y 命令复制一些内容后,如果我在使用 p 命令之前先按下 i 进入插入模式,输入一个空格,再按 Esc ,然后此时按下 p 会粘贴一堆乱码。

    所以,有没有其他类似的替代品?

    谢谢!

    20 条回复    2023-02-24 14:23:59 +08:00
    sdjl
        1
    sdjl  
    OP
       2023-02-23 16:45:03 +08:00
    什么贵? 我写的 html 标签去哪里了?
    sdjl
        2
    sdjl  
    OP
       2023-02-23 16:53:09 +08:00
    好吧,第一写 html 标签,需要用``包裹 html 代码才能正常显示~
    wangtian2020
        3
    wangtian2020  
       2023-02-23 16:56:13 +08:00
    替代品是指替代软件吗,vscode 一直是自动修改匹配的标签对的
    sdjl
        4
    sdjl  
    OP
       2023-02-23 16:57:47 +08:00
    @wangtian2020 不是呢,是指 vim 的插件

    我叫 ChatGPT 帮我写一个插件,结果它的代码不可行~
    yuhangch
        5
    yuhangch  
       2023-02-23 17:04:18 +08:00
    ViriF
        6
    ViriF  
       2023-02-23 17:12:37 +08:00   1
    tpope/vim-surround

    cst<
    #自动弹出 prompt
    :p<CR>
    sdjl
        7
    sdjl  
    OP
       2023-02-23 17:15:42 +08:00
    @yuhangch 谢谢

    我刚尝试添加 let g:tagalong_mappings = ['c', 'C', 'i', 'a'] 配置,bug 依然存在呢
    sdjl
        8
    sdjl  
    OP
       2023-02-23 17:18:00 +08:00
    @ViriF

    谢谢,vim-surround 插件我也装了的,实在不行就只能用这个替代了
    N9f8Pmek6m8iRWYe
        9
    N9f8Pmek6m8iRWYe  
       2023-02-23 17:38:33 +08:00
    idea 可以自动编辑标签对,可以试试
    yuancoder
        10
    yuancoder  
       2023-02-23 17:49:31 +08:00   1
    surround 插件 :
    cst 修改标签
    wangjw
        11
    wangjw  
       2023-02-23 17:51:53 +08:00
    vscode 有个 "auto rename tag" 插件可以试试
    wangjw
        12
    wangjw  
       2023-02-23 17:53:24 +08:00
    sorry ,没看到 'vim',请忽略
    yuuko
        13
    yuuko  
       2023-02-23 18:05:07 +08:00
    装个 html lsp ,只要你用的 lsp 客户端支持 linked editing ,修改标签会帮你自动修改
    acdfjelxe
        14
    acdfjelxe  
       2023-02-24 01:07:20 +08:00   1
    sdjl
        15
    sdjl  
    OP
       2023-02-24 10:48:06 +08:00
    @acdfjelxe 谢谢,目前还没有切换到 nvim 的计划,不过感觉快了
    justgodlike1993
        16
    justgodlike1993  
       2023-02-24 11:29:00 +08:00   1
    mattn/emmet-vim <C-y>u
    sdjl
        17
    sdjl  
    OP
       2023-02-24 13:04:20 +08:00
    @justgodlike1993 "mattn/emmet-vim <C-y>u"

    谢谢,这个也行的。
    dragondove
        18
    dragondove  
       2023-02-24 13:53:29 +08:00
    @acdfjelxe 这个插件不支持 x/p 之类的操作比较难受,treesitter 目前也有性能问题
    tool2d
        19
    tool2d  
       2023-02-24 13:57:04 +08:00   1
    如果是低频修改 html ,有没有 auto rename 功能,对效率影响并不大。也可以用 vscode 修改。

    如果是高频使用,你可以用</auto>来进行关键词自动推导。或者用 yaml 这种没有结尾符的格式,动态编译成 html 。
    fannheyward
        20
    fannheyward  
       2023-02-24 14:23:59 +08:00   1
    LSP 的 Linked Editing ,直接 `cw` 就是。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4522 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 01:04 PVG 09:04 LAX 18:04 JFK 21:04
    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