作者:邻居小明 | 来源:互联网 | 2022-12-08 12:58
我正在使用Sublime Text 3,但无法打开~~~ .sublime-package文件。
当我用Sublime Text 3打开它时,它看起来像这样:
504b 0304 1400 0000 0800 9496 084d 8c0b
5989 b600 0000 0501 0000 0a00 0000 2e67
6974 6967 6e6f 7265 358e c16a 0331 0c44
effa 0a43 6f81 557f 2297 420a 8524 a752
8a62 2bae a9d7 32b2 b224 7f1f 3b9b 5c84
f466 18cd 06eb eddb cb0f 6cd0 e61d 9578
该文件的长度当然比文件长,但是无论如何,我无法读取它。
如何阅读和编辑此文件?
1> OdatNurd..:
一个sublime-package
文件就是zip
它的扩展文件; 即,如果您具有可以打开zip文件的工具,则可以打开包并使用它查看内容。zip
根据工具的不同,这可能会或可能不需要您临时重命名文件以使其具有扩展名。
也就是说,sublime-package
仅当您是首先创建文件的人时,才建议您直接修改a ;否则,您有可能在最不期望的时候丢失更改。
为了解释原因,有一点背景知识。首先,可以在两个位置sublime-package
存在文件。
第一个位于Packages
Sublime本身的安装文件夹(即可执行文件所在的位置)内的文件夹中。这些之所以称为Shipped
包,是因为它们与Sublime一起提供,并且使用Sublime的每个人都可以访问它们。
第二个文件夹位于一个名为的文件夹中,该文件夹Installed Packages
包含在用户特定的Sublime Data
文件夹中。该位置因平台而异,但是您始终可以通过选择Preferences > Browse Packages
然后升至一个文件夹级别来找到它。此处的软件包称为Installed
软件包,是您自己在Sublime中安装的软件包。一般来说,这里的软件包是由安装的Package Control
。
当Sublime Text更新到新的版本时,它将所有Shipped
包替换为(可能是)全新sublime-package
文件以更新它们。
同样,当程序包控制升级程序包时,它会丢弃旧sublime-package
文件并将其替换为新版本。
所有这些归结为以下几点:切勿直接sublime-package
将您自己没有亲自复制的文件修改到适当的位置,否则在将来的某个时候,您的更改将在软件包升级期间被毫不客气地抹去。
这样就剩下了一个问题:如何在需要时实际修改软件包文件,答案是创建一个Override
。
有一个名为该Packages
文件夹的文件夹,您可以Preferences > Browse Packages
从菜单中进行选择。这个文件夹也可以包含包,但是它们在这里Unpacked
;那不是有一个MyPackage.sublime-package
包含一些文件的名为文件的文件,而是一个有一个MyPackage
包含文件的名为文件夹的文件。
当Sublime正在查看一个sublime-package
文件以加载其中包含的文件时,它会在Packages
文件夹中查找是否有与该sublime-package
文件同名的文件夹。如果存在,并且该文件夹中有一个文件,该文件具有的确切名称和路径sublime-package
,Sublime将加载该文件,而不是sublime-package
文件中的文件。
例如; 假设有一个名为的软件包Foo.sublime-package
,其中包含一个名为的文件foo.py
;当Sublime正在扫描Foo.sublime-package
应加载的文件时,它会发现有一个foo.py
文件。因此,它将检查文件是否Packages/Foo/foo.py
存在,如果存在,它将加载该文件,并忽略文件内部的内容sublime-package
。
Packages
在升级存储为sublime-package
文件的软件包的过程中,不会触摸该文件夹的内容,因此,这意味着,如果Override
以这种方式创建,即使基础软件包升级,更改也将保留。
创建此类Override的最简单方法是使用PackageResourceViewer。安装此软件包后,您可以PackageResourceViewer: Open Resource
从命令面板使用它轻松地打开任何软件包中的任何文件,保存文件将PackageResourceViewer
自动为您创建替代。
综上所述,一个重要的警告。而sublime-package
直接修改直接将导致您的更改毫不客气地被丢弃,而不会发出任何警告,而创建替代将导致Sublime始终使用它,即使软件包已被修改。
根据文件和修改,这可能很重要。在上面的示例中,如果您创建了一个替代项以对其foo.py
进行更改,然后Foo
软件包的作者进行了更改foo.py
以修复错误或添加更多功能,则当软件包更新时,您的更改不会丢失,但更改也会停止更新中的更改才会生效。
该OverrideAudit包可以帮助在这里; 它所做的一件事是检查升级,以查看您是否已覆盖已升级程序包中的文件并发出警告,以便您可以查看正在发生的情况。