Intellij IDEA 无法撤销

20

我正在Intellij IDEA上进行一个项目。我移动了一些包并进行了重构。但是,我想撤消我的更改。当我点击撤消按钮时,它会显示:

无法撤消

并在下面显示一个列表:

由此操作受影响的以下文件已经发生了更改

我该如何还原我的更改,因为我丢失了一些包和类?Intellij IDEA是否将它们保存在临时文件夹中?

PS:我在64位Ubuntu计算机上使用openjdk 1.6.0。

3个回答

28

感谢Intellij IDEA支持团队的Serge Baranov。当我在支持页面提出问题时,他立即回答了我的问题。 - kamaci
是的,IntelliJ的支持团队非常棒,这也是我更喜欢IntelliJ而不是Eclipse的原因之一(并非唯一原因)。 - Guillaume
1
但是如果我想要撤销更改,那么我真的想要撤销更改。但是如果我从目录中检查,它仍然显示。保留本地历史记录是一回事,但保留SVN的历史记录是另一回事。我希望Intellij在文件被还原后,在SVN提交或还原中不显示任何内容。 - R-JANA
链接已经失效。 - pennstatephil
1
@pennstatephil 这里是一个解释,而不是死链接:https://www.jetbrains.com/help/idea/2016.1/using-local-history.html - kamaci
通常不接受链接作为答案,因为链接可能会失效。请使用链接内容充实您的答案。 - empty

16

通过VCS -> 本地历史记录 -> 显示历史记录 来撤销它。


3

当我开发IntelliJ插件emacsIDEAs时,我多次通过谷歌搜索到这里,现在我将我的解决方案分享给需要的人。

通常更改文档需要在runWriteAction中完成,而撤消对文档的更改需要在CommandProcessor.getInstance().executeCommand中调用。

因此解决方案是:在runWriteAction中调用executeCommand,然后更改就可以被撤销。

protected Runnable getRunnableWrapper(final Runnable runnable) {
    return new Runnable() {
        @Override
        public void run() {
            CommandProcessor.getInstance().executeCommand(_editor.getProject(), runnable, "cut", ActionGroup.EMPTY_GROUP);
        }
    };
}

final Runnable runnable = new Runnable() {
    @Override
    public void run() {
        selectJumpArea(jumpTargetOffset);
        _editor.getSelectionModel().copySelectionToClipboard();
        EditorModificationUtil.deleteSelectedText(_editor);
        _editor.getSelectionModel().removeSelection();
    }
};

ApplicationManager.getApplication().runWriteAction(getRunnableWrapper(runnable));

代码仓库: https://github.com/whunmr/emacsIDEAs


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接