更改neovim中的HTML属性
我发现自己很难在HTML标记中快速更改属性 例如,我有以下代码更改neovim中的HTML属性,vim,neovim,Vim,Neovim,我发现自己很难在HTML标记中快速更改属性 例如,我有以下代码 <div className="expense-date"> <div className="expense-date__@@@year">{year}</div> <div>{month}</div> <div>{day}</div> </div> 我的光标在@@@所在的位置,我想删
<div className="expense-date">
<div className="expense-date__@@@year">{year}</div>
<div>{month}</div>
<div>{day}</div>
</div>
我的光标在@@@所在的位置,我想删除整个属性:className=expense-date\uu@@@year
是否有任何文本对象可用于快速删除它?目前,如果有另一个属性,我会使用T-ct>或T-ct,但这显然不够好,如果属性值中有一个空格,这将不起作用。据我所知,没有简单的方法可以做到这一点;除非执行深入的语法分析,否则总会有一些警告 但是,您可以改进您的技术,例如使用FF=bF d2f F转到字符串的开头; F=转到上一个=符号,跳过两个符号之间的最终空格; B在属性中间的属性名为EngUALY,例如对于数据我的Atter,跳过最终的空间; F转到属性名称前的第一个空格; d2f或c2f执行作业。
当然,为了简化它的使用,您可以将它用作带有q和@的宏。据我所知,没有简单的方法可以做到这一点;除非执行深入的语法分析,否则总会有一些警告 但是,您可以改进您的技术,例如使用FF=bF d2f F转到字符串的开头; F=转到上一个=符号,跳过两个符号之间的最终空格; B在属性中间的属性名为EngUALY,例如对于数据我的Atter,跳过最终的空间; F转到属性名称前的第一个空格; d2f或c2f执行作业。
当然,为了简化其使用,您可以将其用作带有q和@的宏。没有内置的属性文本对象,但您可以使用类似以下的通用对象来近似使用它:
va"oB
yix
dax
vix
cax
…
其中:
va选择值,
o将光标移动到选择的另一侧,
B将选择扩展到属性的开头。
可以将其转换为快速且脏的伪文本对象:
xnoremap ix a"oB
onoremap ix :<C-u>normal vix<CR>
xnoremap ax a"oBh
onoremap ax :<C-u>normal vax<CR>
有关更智能的实现,请参阅
请注意,此答案中的任何内容都不能保证在Neovim中起作用。没有内置的属性文本对象,但您可以使用类似以下的通用对象来近似该对象:
va"oB
yix
dax
vix
cax
…
其中:
va选择值,
o将光标移动到选择的另一侧,
B将选择扩展到属性的开头。
可以将其转换为快速且脏的伪文本对象:
xnoremap ix a"oB
onoremap ix :<C-u>normal vix<CR>
xnoremap ax a"oBh
onoremap ax :<C-u>normal vax<CR>
有关更智能的实现,请参阅
请注意,此答案中的任何内容都不能保证在Neovim中起作用。这里有另一个选项:
vi> ........ visual select inner <>
o ............ jump to the other side
w ............ jump to the next word
还有一个选择:
vi> ........ visual select inner <>
o ............ jump to the other side
w ............ jump to the next word