Sublime Text键绑定未保存更改中的上下文

时间:2015-10-17 21:07:52

标签: sublimetext3 sublimetext key-bindings

我正在尝试在sublime text 3中创建一个keybind 根据文件是否有未保存的更改来改变其行为

Sublime已经在创建密钥绑定中支持 context 选项,例如:

{"keys":[":","e"],"command":"revert","context":[{"key": "setting.command_mode", "operand": true}]},

但是我找不到是否有办法检测文件是保存还是脏。

有人对此有一些见解吗?

1 个答案:

答案 0 :(得分:0)

查看unofficial documentation(官方文档已过时),似乎没有可用于键绑定的上下文来确定文件是保存还是脏。

因此,我认为有必要在Python中创建一个插件,该命令可以根据文件是否有未保存的更改执行所需的操作。然后,无论上下文如何,您都可以设置键绑定来执行此命令,因为插件将包含必要的逻辑。 official documentation提到插件可以使用视图上的is_dirty()方法确定文件是否已保存。

我从你的问题中看到你想要执行revert命令,所以我编写了一个快速简单的Sublime Text插件/ 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')