无论如何只撤消崇高文本中突出显示的部分代码

Is there anyway to undo only parts of code that are highlighted in sublime text

有没有插件可以做到这一点?假设您突出显示一个代码块,当您按撤消时,它会撤消该代码块中的最后一次更改?

我已经深入研究了 Sublime 的内部结构,但我认为这是不可能的。命令(当您 select 菜单项或按下组合键时执行的过程)以两种方式之一实现:在 Python 中,使用 API,或在 C++ 内部并直接编译成可执行文件或库。如果命令是在纯 Python 中实现的,例如 delete_wordPackages/Default/delete_word.py 中的源代码),您可以根据需要编辑源代码或将部分代码用于您自己的代码中。但是,如果一个命令是在内部实现的,那么除非它具有在某处记录的选项,否则您无法对其进行太多修改。您基本上必须按原样使用它。

这将我们带到 undo/redo 命令和编辑历史记录。据我所知(因为 Sublime 还没有开源),这整个功能完全在内部实现,只公开了命令名称。我完全找不到任何方式来查看或访问对 undo/redo 堆栈所做的实际更改。 sublime.View class 的 command_history() 方法访问 undo/redo 堆栈中的 命令 ,但不是它们所做的实际更改。

所以,所有这一切都是说,不可能制作一个插件来访问 Sublime 中任意 selection 的更改历史记录。主要问题之一(除了无法访问视图的更改历史记录之外)是您现在 select 的文本可能不对应于历史记录中某个时间点的任何内容 - 它可能不存在,或者可能已经发生了根本性的改变,以至于基本上不可能确定哪些变化应该与 select 离子相关,哪些不是。我从未听说过任何其他编辑器中有类似的功能,很可能正是出于这个原因。