• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sdjl
V2EX  ›  程序员

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

  •  
  •   sdjl · Feb 23, 2023 · 2645 views
    This topic created in 1175 days ago, the information mentioned may be changed or developed.

    例如有:

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

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

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

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

    bug 表现为:

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

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

    谢谢!

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

    我叫 ChatGPT 帮我写一个插件,结果它的代码不可行~
    yuhangch
        5
    yuhangch  
       Feb 23, 2023
    ViriF
        6
    ViriF  
       Feb 23, 2023   ❤️ 1
    tpope/vim-surround

    cst<
    #自动弹出 prompt
    :p<CR>
    sdjl
        7
    sdjl  
    OP
       Feb 23, 2023
    @yuhangch 谢谢

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

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

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

    如果是高频使用,你可以用</auto>来进行关键词自动推导。或者用 yaml 这种没有结尾符的格式,动态编译成 html 。
    fannheyward
        20
    fannheyward  
       Feb 24, 2023   ❤️ 1
    LSP 的 Linked Editing ,直接 `cw` 就是。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   965 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 71ms · UTC 20:00 · PVG 04:00 · LAX 13:00 · JFK 16:00
    ♥ Do have faith in what you're doing.