提问者:小点点

vscode多用户重新排序行如何


我发现vscode多光标编辑模式的一个常见问题是如何处理不同长度的“字段”。举个例子:-

我有一个sql文件,其中包含表单的多行

INSERT INTO settings (name,value) VALUES('key_for_value', 'value_to_set'); -- a comment about this setting

我想把它变成

UPDATE settings SET name = 'value_to_set' WHERE name = 'key_for_value'; -- a comment about this setting

显然,每行中的每个< code>'key_for_value'和< code>'value_to_set'的长度不同。

抓住< code>INSERT INTO的第一行相当容易...并使用control-D从那里获得多个光标,并编辑这些行以获得< code > UPDATE settings SET name = ,但随后我陷入困境——我找不到绑定到(例如)跳转到下一个逗号的键——然后开始选择并跳转到下一个右圆括号。然后,我可以进行多行剪切,将光标移回到行首,再向前移动到< code>=符号之后,然后进行多行粘贴。

这种事情可能吗?


共1个答案

匿名用户

您可以使用正则表达式搜索替换

搜索

INSERT INTO (\w+) \((\w+),(\w+)\) VALUES\('([^']+)', '([^']+)'\);(.*)

替换为

UPDATE $1 SET $2 = '$5' WHERE $2 = '$4';$6