sublime - 保存所有具有名称的打开/加载文件?

bar*_*lop 8 python sublimetext2

在Sublime Text 2中,我希望能够保存所有具有名称的打开/加载文件.

我喜欢Sublime如何拥有带文件名的文件,并且拥有从未保存过的文件,并且可以关闭它并记住无标题文件并重新加载它们而无需我保存它们.但是当一个文件有一个文件名并且缓冲区中有一些变化尚未保存时,sublime就会显示它,文件名和圆圈,我关闭sublime,然后重新打开它,我崇拜它已经重新编号了所以这些变化仍然没有保存到文件中.那太棒了..但是......我想要一个拯救所有人的命令,但不是那些没有命名的人.

菜单中有一个全部保存选项,但会弹出一个对话框,询问是否保存了无标题文件.

编写一个命令可以使用哪些API函数来保留未命名的命令,并保存带有文件名的命令?(是否有任何我可以运行的代码使用这些API函数?)

lon*_*hua 9

AFAIK,打开的文件由一个或多个视图表示.因此,尝试获取所有视图并保存带有文件名的视图.我写了一个简单的例子.希望它可以帮到你.

顺便说一句,您可以通过以下链接检查所有API.

Sublime Text 2 API参考

import sublime, sublime_plugin

class SaveAllExistingFilesCommand(sublime_plugin.ApplicationCommand):
    def run(self):
        for w in sublime.windows():
            self._save_files_in_window(w)

    def _save_files_in_window(self, w):
        for v in w.views():
            self._save_exiting_file_in_view(v)

    def _save_exiting_file_in_view(self, v):
        if v.file_name():
            if v.is_dirty():
                v.run_command("save")
Run Code Online (Sandbox Code Playgroud)


Mat*_*DMo 6

lhuang的答案太棒了,完全符合我的想法.确保保存插件Packages/User/save_all_existing_files.py,以使其正常工作.您可以Packages通过Preferences -> Browse Packages...菜单项访问该目录.我确实有一些补充,让你的生活更轻松 - 一个菜单项和一个组合键.

您通常不应该编辑Packages/Default目录中的任何内容,因为所有文件都可以被覆盖/展开,但在这种情况下,我推荐它为了美观.Packages/Default/Main.sublime-menu在第128行之后打开并添加以下行,该行应该是save_all菜单项:

{ "command": "save_all_existing_files", "caption": "Save All Named Files", "mnemonic": "F" },
Run Code Online (Sandbox Code Playgroud)

这将在File菜单中添加"保存所有命名文件"选项.接下来,转到Preferences -> Key Bindings - User并添加以下行:

{ "keys": ["ctrl+alt+shift+s"], "command": "save_all_existing_files" },
Run Code Online (Sandbox Code Playgroud)

如果此文件没有任何其他内容,请用方括号括住上面一行[ ]并删除尾随逗号,否则Sublime会向您投诉.

保存keymap文件后,您可以通过点击触发命令CtrlAltShiftS.显然,如果您不喜欢它们,可以更改密钥.如果你选择一个产生怪异行为的组合,请查看FindKeyConflicts@skuroda 的插件 - 它对于排除设置故障非常宝贵,特别是在开发自己的软件包时.

祝好运!