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

2023-02-23 16:44:32 +08:00
 sdjl

例如有:

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

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

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

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

bug 表现为:

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

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

谢谢!

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

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

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

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

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

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

如果是高频使用,你可以用</auto>来进行关键词自动推导。或者用 yaml 这种没有结尾符的格式,动态编译成 html 。
fannheyward
2023-02-24 14:23:59 +08:00
LSP 的 Linked Editing ,直接 `cw` 就是。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/918604

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX