簡體   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