![]() |
1
4
我认为你的脚本唯一的问题是位置保存看起来不正确。你基本上可以做你想做的事情:
与问题中的(正确的)代码相同。您可以简单地将其映射为:
如果你想保存这个位置,它会变得更复杂一些。最好的办法可能是使用这样的工具:
其中大部分是注释,但关键是要查看替换前后行的长度,并相应地决定新的光标位置。你可以通过比较你的方法来做到这一点
编辑 如果希望光标在空格字符后结束,请修改行:
这样看起来像这样:
编辑(2) 我已经更改了上面的脚本来考虑您的注释,这样光标位置只会根据光标位置之前的空格数进行调整。这是通过创建第二个正则表达式来完成的,该表达式从行中提取光标前面的空格(而不是其他任何内容),然后根据空格数调整光标位置。 |
![]() |
2
3
我不使用vim,但是如果你想匹配零个或更多的空格,你不应该使用
编辑:是光标定位的问题:你现在要做的是在替换之前在空格的开头设置位置,然后向前移动一个位置,使其在空格之后。尝试将其设置为 结束 相反,像这样:
这样,任何添加或删除都会发生 之前 光标位置。在大多数编辑器中,光标位置自动移动以跟踪这些更改。你不需要做任何getpos/setpos的事情。 |
![]() |
3
0
相反,我使用了法线和修改线之间的差异,找到了第一个与替换的正则表达式匹配的空间的位置。然后我将光标位置设置为+1。 |
![]() |
4
0
我使用的这个简单的方法几乎是相同的:
将光标放在要删除空格的位置,并删除光标和下一个文本后的所有空格。 |
![]() |
DotFX · RegEx捕获关键字前但括号后的所有内容 7 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 7 月前 |
![]() |
iato · 确保正则表达式不从命名材料中的数字中提取 8 月前 |
![]() |
vr8ce · 非成对标记中特定字符的正则表达式 8 月前 |
![]() |
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 8 月前 |
![]() |
Carsten · 使用最近的搜索模式更改文本块 8 月前 |