繁体   English   中英

像串联一样编辑文件——是否有任何 IDE 或文本编辑器具有此功能?

[英]Edit files as if concatenated as one -- Do any IDEs or text editors have this feature?

背景:我正在使用 Angular (但我的问题并非特定于任何语言或框架)。 在 Angular 中,每个组件需要四个单独的文件。 因此,我们经常发现自己打开了 40 多个文件。 但是,这些文件中的大多数可能很小,每个不到 20 行。

许多 IDE 允许您在多个 windows 中打开文件。 每个 window 可以有不同的面板,每个面板可以有不同的选项卡。 这很棒,但老实说,这还不够。

我想要什么:除了 windows、面板和选项卡之外,我还想添加另一个层次的组织。

我推测这可能已经存在了几十年,但我只是不知道它叫什么 至少,我推测这至少在 Angular 出现时就已经存在。

例如,这是 VSCode 的屏幕截图,其中四个文件在四个面板中打开。 (代码取自 Angular 动态组件教程):

VSCode 的屏幕截图,其中四个短文件在四个面板中打开

这是一个快速模型,显示了我正在寻找的内容。 四个文件是打开的,但最短的三个文件被“连接”到一个编辑器中。 从一个文件底部向下的箭头键会将您带到下一个文件的第一行。

VSCode 的屏幕截图,其中打开了四个短文件,三个在一个窗格的单个编辑器中,一个具有专用窗格。

值得注意的是,这些文件实际上并没有连接到磁盘上。

TLDR:什么文本编辑器可以让我像在上面的模型中那样编辑多个文件,就像它们被连接一样?

如果文件保留为单独的窗口/选项卡,则文件编辑器必须将每个选项卡缩小到最小高度,然后垂直平铺它们。 如果有任何编辑可以做到,我怀疑它会是 emacs 或 vim。 您也可以通过打开单独的编辑器 windows 并使用平铺 window 管理器来完成此操作。

我们可以通过一些文本编辑魔法来实现类似的效果。 它会是这样的:

  • 将 header 添加到由唯一分隔符组成的每个文件(例如# === magic separator === filename my_file.js ===
  • 使用cat将所有文件合并为一个文件
  • 编辑这个文件
  • 完成后,使用分隔符将它们分开并将文本放回原始文件中

您可以轻松编写一些用于合并和拆分的脚本,以便快速完成。 您还可以设置一个后台脚本,在您编辑组合文件时自动运行拆分器。 但是,合并后的文件本质上是一个新文件,因此您无法使用 git 查看其上的更改,并且 VS Code 的 CodeLens/Inline 责备不起作用。

一种选择是使用签入 VCS 的组合文件开发代码库,然后仅将拆分器脚本作为“构建”步骤的一部分。 因此,您将进行更改,运行./build.sh将文件拆分到某个临时目录中,然后从那里运行您的应用程序。

最后,我讨厌被冷嘲热讽,但事实是,最好通过避免不考虑开发人员人体工程学的设计不佳的框架来解决这个问题。 许多其他语言为开发人员提供了很大的自由度和许多工具来按照他们的意愿组织他们的代码,而不是像要求许多小组件在单独的文件中那样施加约束。 例如 Java 也有类似的问题(不知道是否有更新的版本修复了它) - 每个文件只能有一个 class,如果你喜欢有很多小文件,这会造成巨大的混乱。 C# 没有此限制,因此 C# 代码库可以比 Java 代码库更整洁。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM