gpt4 book ai didi

replace - 用于替换引号的 Sublime Workflow

转载 作者:行者123 更新时间:2023-12-05 09:17:20 26 4
gpt4 key购买 nike

我使用文本编辑器 Sublime Text 3 来编辑代码,并且经常会有一个用双引号引起来的字符串文字,我想将其更改为单引号,反之亦然。现在我滚动到每个引号,并将其替换为我想要的。是否有更快的工作流程?比如说,突出显示单词或热键之类的?我会发现它非常有用。

最佳答案

如果您在一个文件中有大量这样的字符串并且您想要一次转换所有这些字符串,您可以使用正则表达式查找/替换操作来查找并替换它们。您可以使用 Find > Replace...Find > Find in files... 来搜索捕获引号中文本的匹配正则表达式。

例如,您可以使用 \"([^"\n]*)\" 作为搜索词,使用 '\1' 作为要交换的替换文本单引号的所有双引号字符串。

您不能将类似的东西直接绑定(bind)到键,因为查找/替换不能在宏中使用,但您可以使用 RegReplace如果您想走那条路,请打包执行此操作。

如果您还没有这样做的话,您可以通过利用多个游标来加速您当前使用的工作流程。

例如,您可以选择第一个引号,然后按 Ctrl+DOption+D 选择另一个。现在您有两个光标,按 Backspace 删除两个引号,然后按新的引号字符插入新的。

这不能宏化并绑定(bind)到一个键,因为 find_under_expand 命令不能在宏中使用,尽管如此。

对于完整的按键解决方案,据我所知,您需要某种插件来为您执行此操作。一个这样的例子似乎是 ChangeQuotes ,尽管我从未亲自使用过它。

也可以编写自己的小插件,如下所示:

import sublime
import sublime_plugin


class SwapQuotesCommand(sublime_plugin.TextCommand):
pairs = ["'", '"']

def run(self, edit):
self.view.run_command("expand_selection", {"to": "scope"})
for sel in self.view.sel():
self.toggle(edit, sel)

def toggle(self, edit, region):
begin = self.view.substr(region.begin())
end = self.view.substr(region.end() - 1)

if begin == end and begin in self.pairs:
index = self.pairs.index(begin) + 1
new = self.pairs[index % len(self.pairs)]

for point in (region.begin(), region.end() - 1):
self.view.replace(edit, sublime.Region(point, point+1), new)

这会将所有游标中的选择扩展到当前范围之外,然后如果选择的两端都是匹配引号,则交换正在使用的引号。

在使用中,您将使用如下所示的键绑定(bind),其中包含一个上下文,使键仅在光标位于字符串内时触发,这样它就不会在肯定会弄乱您的选择的情况下行不通。

{
"keys": ["ctrl+shift+'"], "command": "swap_quotes",
"context": [
{ "key": "selector", "operator": "equal", "operand": "string.quoted", "match_all": true }
]
},

关于replace - 用于替换引号的 Sublime Workflow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48383805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com