Sublimetext2 如何对sublime文本项目上的所有文件执行命令?

Sublimetext2 如何对sublime文本项目上的所有文件执行命令?,sublimetext2,indentation,sublimetext,sublimetext3,Sublimetext2,Indentation,Sublimetext,Sublimetext3,我在网上到处搜索,想知道如何对所有文件执行升华文本命令,然后保存。我需要重构有缩进问题的旧项目,比如硬标签 我想要的是对整个项目执行“expand_tabs”命令。我该怎么做呢?更新:我已经把它变成了一个有很好文档记录的ST插件。在这里找到它: 我已经写了一个小插件来实现这一点。将此代码放在“Packages/User/BatchTabToSpaceFixer.py”下: 导入升华 导入升华插件 类BatchTabToSpaceFixerCommand(升华插件.TextCommand): d

我在网上到处搜索,想知道如何对所有文件执行升华文本命令,然后保存。我需要重构有缩进问题的旧项目,比如硬标签


我想要的是对整个项目执行“expand_tabs”命令。我该怎么做呢?

更新:我已经把它变成了一个有很好文档记录的ST插件。在这里找到它:


我已经写了一个小插件来实现这一点。将此代码放在“Packages/User/BatchTabToSpaceFixer.py”下:

导入升华
导入升华插件
类BatchTabToSpaceFixerCommand(升华插件.TextCommand):
def运行(自我,查看):
self.run_all_视图()
#self.run_当前_视图()
def已启用(自):
返回len(sublime.active_window().views())>0
def运行所有视图(自):
对于sublime.active_窗口()中的视图。视图():
self.process(视图)
def run_当前_视图(自身):
self.process(sublime.active\u window().active\u view())
def流程(自我、查看):
#以前的选项卡大小
view.run_命令('set_setting',{“setting”:“tab_size”,“value”:3})
#此技巧将正确转换内联(非前导)选项卡。
view.run_命令('expand_tabs',{“set_translate_tabs”:True})#这将触及内联选项卡
view.run_命令('unexpand_tabs',{“set_translate_tabs”:True})#这不会
#新选项卡大小
view.run_命令('set_setting',{“setting”:“tab_size”,“value”:4})
view.run_命令('expand_tabs',{“set_translate_tabs”:True})
然后打开要处理的项目文件。该插件将处理打开的选项卡,并使其变脏。一旦你认为一切正常,你就可以做一个“全部保存”

不要忘记在代码中编辑上一个和新的选项卡大小。例如,我的案例是从3(作为选项卡)到4(空格)。在这种情况下,该插件将正确地保留使用制表符进行的垂直内联(非前导)对齐

如果愿意,可以为此作业指定快捷键:

{"keys": ["ctrl+alt+t"], "command": "batch_tab_to_space_fixer"}

更新:我已经把它变成了一个有很好文档记录的ST插件。在这里找到它:


我已经写了一个小插件来实现这一点。将此代码放在“Packages/User/BatchTabToSpaceFixer.py”下:

导入升华
导入升华插件
类BatchTabToSpaceFixerCommand(升华插件.TextCommand):
def运行(自我,查看):
self.run_all_视图()
#self.run_当前_视图()
def已启用(自):
返回len(sublime.active_window().views())>0
def运行所有视图(自):
对于sublime.active_窗口()中的视图。视图():
self.process(视图)
def run_当前_视图(自身):
self.process(sublime.active\u window().active\u view())
def流程(自我、查看):
#以前的选项卡大小
view.run_命令('set_setting',{“setting”:“tab_size”,“value”:3})
#此技巧将正确转换内联(非前导)选项卡。
view.run_命令('expand_tabs',{“set_translate_tabs”:True})#这将触及内联选项卡
view.run_命令('unexpand_tabs',{“set_translate_tabs”:True})#这不会
#新选项卡大小
view.run_命令('set_setting',{“setting”:“tab_size”,“value”:4})
view.run_命令('expand_tabs',{“set_translate_tabs”:True})
然后打开要处理的项目文件。该插件将处理打开的选项卡,并使其变脏。一旦你认为一切正常,你就可以做一个“全部保存”

不要忘记在代码中编辑上一个和新的选项卡大小。例如,我的案例是从3(作为选项卡)到4(空格)。在这种情况下,该插件将正确地保留使用制表符进行的垂直内联(非前导)对齐

如果愿意,可以为此作业指定快捷键:

{"keys": ["ctrl+alt+t"], "command": "batch_tab_to_space_fixer"}

我建议编辑您的标题和问题,以便更好地表达它是关于批量将选项卡转换为空格的。所以谷歌会向这个帖子发送更多相关用户。虽然这确实有效,但它需要你手动打开所有你想要编辑的文件。根据项目的大小,这可能不太理想。对于将来类似的情况(同样取决于要转换的文件数量),最好使用ST外部的一些脚本/工具来执行扩展。当然,如果只是一小部分文件,或者你只是想在遇到它们时修复它们,那么插件可以很好地工作。我建议编辑你的标题和问题以更好地表达它是关于批量将选项卡转换为空格。所以谷歌会向这个帖子发送更多相关用户。虽然这确实有效,但它需要你手动打开所有你想要编辑的文件。根据项目的大小,这可能不太理想。对于将来类似的情况(同样取决于要转换的文件数量),最好使用ST外部的一些脚本/工具来执行扩展。当然,如果只是一小部分文件,或者您只是想在遇到它们时修复它们,那么插件就可以很好地工作。