上下文是我将React props定义复制粘贴到函数参数中,这样就不必一一键入变量名:
// Select these 3 lines with V3j
MyComponent.propTypes = {
formName: PropTypes.string.isRequired,
formPurpose: PropTypes.string.isRequired,
formPlaceholder: PropTypes.string.isRequired,
};
<MyComponent
// Past here with the output below <----------- expeted output
formName={formName}
formPurpose={formPurpose}
formPlaceholder={formPlaceholder}
/>
要删除: PropTypes.string.isRequired
并将其更改为={variableNameHere}
,我正在使用以下Vim正则表达式:
:'<,'>s/\(.*\)\zs:.*/={\1}/g
这应该捕获变量名,删除:
之后的所有内容,并将捕获内容放在={}
上的大括号内。
结果如下:
formName={ formName}
formPurpose={ formPurpose}
formPlaceholder={ formPlaceholder}
{
之后有一个多余的空间,我无法弄清楚正则表达式中的空间是什么。有什么想法吗?
答案 0 :(得分:4)
使用
:'<,'>s/[[:blank:]]*\(.*\)\zs:.*/={\1}/g
获得的空格是表达前的前导空格。