Sublimetext3 升华文本键绑定未保存更改中的上下文

Sublimetext3 升华文本键绑定未保存更改中的上下文,sublimetext3,sublimetext,key-bindings,Sublimetext3,Sublimetext,Key Bindings,我试图在sublime text 3中创建一个键绑定,该键绑定根据文件是否有未保存的更改来改变其行为 Sublime已经在创建键绑定时支持上下文选项,例如: {"keys":[":","e"],"command":"revert","context":[{"key": "setting.command_mode", "operand": true}]}, 但是,我找不到是否有办法检测文件是否已保存或已脏 有人对此有一些见解吗?查看(官方文档已过时),似乎没有上下文可用于键绑定以确定文件是否已保

我试图在sublime text 3中创建一个键绑定,该键绑定根据文件是否有未保存的更改来改变其行为

Sublime已经在创建键绑定时支持上下文选项,例如:

{"keys":[":","e"],"command":"revert","context":[{"key": "setting.command_mode", "operand": true}]},
但是,我找不到是否有办法检测文件是否已保存或已脏

有人对此有一些见解吗?

查看(官方文档已过时),似乎没有上下文可用于键绑定以确定文件是否已保存或已脏

因此,我认为有必要在Python中创建一个插件,使用一个命令,根据文件是否有未保存的更改来执行所需的操作。然后,您可以设置keybinding来执行该命令,而不考虑上下文,因为插件将包含必要的逻辑。 提到插件可以使用视图上的
is\u dirty()
方法确定是否保存文件

从您的问题中,我看到您想要执行revert命令,因此我起草了一个快速简单的Sublime Text plugin/python脚本来实现这一点:

import sublime, sublime_plugin

class RevertIfUnsavedCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        if self.view.is_dirty():
            self.view.run_command('revert')
        else:
            print('TODO: do something else here')
查看(官方文档已过时),似乎没有上下文可用于键绑定以确定文件是否已保存或已脏

因此,我认为有必要在Python中创建一个插件,使用一个命令,根据文件是否有未保存的更改来执行所需的操作。然后,您可以设置keybinding来执行该命令,而不考虑上下文,因为插件将包含必要的逻辑。 提到插件可以使用视图上的
is\u dirty()
方法确定是否保存文件

从您的问题中,我看到您想要执行revert命令,因此我起草了一个快速简单的Sublime Text plugin/python脚本来实现这一点:

import sublime, sublime_plugin

class RevertIfUnsavedCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        if self.view.is_dirty():
            self.view.run_command('revert')
        else:
            print('TODO: do something else here')