Intellij可以在顶部/开始而不是最后一个编辑位置打开文件进行编辑

时间:2016-09-29 15:10:23

标签: intellij-idea ide

如果您打开一个大的java文件,请滚动到“某处”并进行更改。然后关闭文件并重新打开它,Intellij将在您进行更改的最后一点打开它。这很烦人,可以改变它所以它总是像大多数文件阅读应用程序一样打开顶部的文件

2 个答案:

答案 0 :(得分:4)

我真的不记得看到这样的选项了,但你可以解决一些小tricks

1)包括文件的行号,例如在第10行打开MyUI CTRL + N &输入myui:10

navigate to line

2)导航到符号,然后导航到init的方法MyUI CTRL + SHIFT + ALT + N &输入myui.init

enter image description here

答案 1 :(得分:0)

同样的功能使我恼火,因为我更喜欢通过在“项目”树中双击文件来打开文件(该文件不显示键入行号的选项)。另外,让我烦恼的是,在每个文件选项上都键入行号只是为了让文本编辑器跳到六个月前我正在编辑的位置。

遗憾的是,仍然没有选择来切换此行为。 (当用户更喜欢更简单的行为而不是其旗舰默认设置时,JetBrains确实非常不喜欢它。)但是从保存的工作空间中剥离“上次编辑位置”历史记录非常容易。

可选的第一步:如果您有多个工作空间,则需要查找其配置文件。无论您在何处指定项目根目录,都应包含一个带有.idea文件的workspace.xml子目录,例如$HOME/IdeaProjects/MyProjectName/.idea/workspace.xml。将有一个ProjectId键和一些“看起来很废话”的值,例如

<component name="ProjectId" id="wZadhKS8vnOD4GBBT2Pz93rDw" />

您将需要该唯一ID。

实际步骤:

  1. 退出IDEA。 IDE运行时无法执行此操作。

  2. 转到您的个人IDEA目录。这可能因版本而异。对我来说,目前是%HOME%/.IdeaIC2019.3。它将有一个config/workspace子目录,其中包含每个工作区的XML文件,以上面的ProjectId命名。例如,

    $HOME/.IdeaIC2019.3/config/workspace/wZadhKS8vnOD4GBBT2Pz93rDw.xml

对于2020.1及更高版本,此location has moved;对我而言,默认值现在为%APPDATA%/JetBrains/IdeaIC2020.1,并且没有config子目录,因此:C:/Users/me/AppData/Roaming/JetBrains/IdeaIC20201./workspace

该XML文件在这样的节点中包含保存的最后编辑位置:

<component name="editorHistoryManager">
this is all the stuff that causes annoyances
</component>
  1. 制作wZa...3rDw.xml文件的备份副本,无论它的名字是什么。

  2. 使用您喜欢的编程XML编辑器工具删除该节点。例如:

    xmlstarlet ed --omit-decl -d '//component[@name="editorHistoryManager"]' wZa...3rDw.xml > tmp

    mv tmp wZa...3rDw.xml

  3. 下次启动IDEA时,所有文件都会按照上帝和自然的意图在它们的开头打开。

  4. 要获得奖励积分,请在适当的情况下在后台运行的脚本中自动执行以上操作。 :-)

IDEA在涉及空白的XML方面做了一些不寻常的事情,而XMLStarlet之类的工具通常会做其他事情。由于XML与空格无关,因此在运行时没有区别,但这确实意味着,如果要进行比较以确保正确性,或者将IDEA配置保留在版本控制中,则差异中将有很多无关紧要的内容。如果这引起太多噪音,则可以将步骤(4)扩展为类似

xmlstarlet ....  |  sed -e 's@"/>$@" />@'  > tmp

在IDEA最初放置一些空格的大多数地方,向后插入多余的空格。 (我没有对此进行严格的测试,因为缺少空格对我或IDEA运行时都不重要。拥有一个更干净的diff会很好,但无论如何。)

注意事项:由于IDEA可以将其配置保存在基于目录的布局中或在多文件合一的布局中,因此查找工作空间配置文件的步骤可能会大相径庭。我上面写的内容适用于默认的基于目录的布局。