V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sdjl
V2EX  ›  程序员

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

  •  
  •   sdjl · 210 天前 · 1407 次点击
    这是一个创建于 210 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如有:

    <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
       210 天前
    什么贵? 我写的 html 标签去哪里了?
    sdjl
        2
    sdjl  
    OP
       210 天前
    好吧,第一写 html 标签,需要用``包裹 html 代码才能正常显示~
    wangtian2020
        3
    wangtian2020  
       210 天前
    替代品是指替代软件吗,vscode 一直是自动修改匹配的标签对的
    sdjl
        4
    sdjl  
    OP
       210 天前
    @wangtian2020 不是呢,是指 vim 的插件

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

    cst<
    #自动弹出 prompt
    :p<CR>
    sdjl
        7
    sdjl  
    OP
       210 天前
    @yuhangch 谢谢

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

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

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

    如果是高频使用,你可以用</auto>来进行关键词自动推导。或者用 yaml 这种没有结尾符的格式,动态编译成 html 。
    fannheyward
        20
    fannheyward  
       209 天前   ❤️ 1
    LSP 的 Linked Editing ,直接 `cw` 就是。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   958 人在线   最高记录 5930   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 19:26 · PVG 03:26 · LAX 12:26 · JFK 15:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.