是否有任何插件可以执行此操作?让我们假设您突出显示一个代码块,当您按下撤消时,它会撤消该代码块中的最后一次更改?
答案 0 :(得分:0)
我已经完成了很多深入Sublime的内部工作,我认为这是不可能的。命令(当您选择菜单项或按键组合时执行的进程)以两种方式之一实现:在Python中,使用API,或在C ++内部直接编译到可执行文件或图书馆。如果命令是在纯Python中实现的,例如delete_word
(Packages/Default/delete_word.py
中的源代码),则可以根据需要编辑源代码,或者在自己的代码中使用部分代码。但是,如果命令是在内部实现的,那么除非它具有在某处记录的选项,否则您无法对其进行修改。你基本上必须按原样使用它。
这将我们带到undo
/ redo
命令和编辑历史记录。据我所知(由于Sublime尚未开源),整个功能在内部完全实现,只显示命令名称。我完全无法找到任何查看或访问对undo / redo堆栈所做的实际更改的方法。 command_history()
类的sublime.View
方法访问撤消/重做堆栈中的命令,但不访问它们所做的实际更改。
所以,所有这一切都是说一个人不可能创建一个可以访问Sublime中任意选择的更改历史的插件。其中一个主要问题(除了视图的更改历史记录无法访问的事实)是您现在选择的文本可能与历史中某个点的任何内容都不对应 - 它可能不存在,或者可能不存在从根本上改变了基本上不可能确定哪些变化应该与选择相关联,哪些不是。我从未在任何其他编辑器中听到类似的功能,很可能是出于这个原因。