我正在Intellij IDEA上进行一个项目。我移动了一些包并进行了重构。但是,我想撤消我的更改。当我点击撤消按钮时,它会显示:
无法撤消
并在下面显示一个列表:
由此操作受影响的以下文件已经发生了更改
我该如何还原我的更改,因为我丢失了一些包和类?Intellij IDEA是否将它们保存在临时文件夹中?
PS:我在64位Ubuntu计算机上使用openjdk 1.6.0。
我正在Intellij IDEA上进行一个项目。我移动了一些包并进行了重构。但是,我想撤消我的更改。当我点击撤消按钮时,它会显示:
无法撤消
并在下面显示一个列表:
由此操作受影响的以下文件已经发生了更改
我该如何还原我的更改,因为我丢失了一些包和类?Intellij IDEA是否将它们保存在临时文件夹中?
PS:我在64位Ubuntu计算机上使用openjdk 1.6.0。
IntelliJ IDEA拥有一项很棒的功能,叫做本地历史记录。我可以撤销自己所做的更改。这里有一个视频为此提供了详细的例子:
http://www.jetbrains.com/idea/training/demos/local_history.html
您可以从这里获取更多信息:http://jetbrains.com/help/idea/2016.1/using-local-history.html
通过VCS -> 本地历史记录 -> 显示历史记录 来撤销它。
当我开发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));