编写一个代码段,删除末尾的初始变量,只保留修改后的变量

2024-04-18 12:48:59 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个UltiSnips片段,它将用下划线替换所有特殊字符。你知道吗

我有这个:

snippet us "replace specials with underscores" w
${1:${VISUAL}}
`!p
import re
snip.rv = re.sub("[^0-9a-zA-Z]", "_", t[1])
`
endsnippet

现在类似Hello world!的东西变成了:

Hello world!
Hello_World_

不过,在最后,我只想保留第二行,并放弃我最初键入的内容。有可能吗?也许用post_expand?你知道吗


Tags: importrehelloworldwithsnipsnippetreplace
1条回答
网友
1楼 · 发布于 2024-04-18 12:48:59

您不需要编写任何python代码。您的代码段如下所示:

snippet us "replace specials with underscores" w
${1:${VISUAL/[^0-9a-zA-Z]/_/g}}
endsnippet

一般来说,我们可以通过snip.v.text属性检索在可视模式下选择的文本。所以只要把t[1]改成那样,同时去掉${1:${VISUAL}}

snippet us "replace specials with underscores" w
`!p
import re
snip.rv = re.sub("[^0-9a-zA-Z]", "_", snip.v.text)
`
endsnippet

相关问题 更多 >