如何在 Sublime Text 3 中为特定语法设置保存文件的默认文件扩展名

How to set default file extension of saving file for specific syntax in Sublime Text 3

C++标准不规定文件扩展名,所以大多数人使用.cpp,但我更喜欢使用.cc,如何告诉Sublime Text保存到.cc当默认使用 C++ 语法时?

在将文件集保存为特定语法时更改 save-as 对话框显示的默认文件扩展名的方法是覆盖该语法的默认 .sublime-syntax 文件。在您的情况下,这将是 C++.sublime-syntax 文件。

当然,正如 MattDMo 指出的那样,最简单的方法是在每次保存文件时手动键入首选文件扩展名。但对于那些想要做出改变的人,这里是如何做的。

  • 打开 Command Palette 和 select View Package File.
  • 键入 C++,然后键入 select C++/C++.sublime-syntax。 ST 将打开文件。
  • 在顶部附近,您应该会看到 file_extensions: 和这样的列表:
file_extensions:
  - cpp
  - cc
  - cp
  - cxx
  - c++
  ...snip...
  • ST 使用 file_extensions 列表中的第一项作为 save-as 对话框的默认文件扩展名。
  • 要使 .cc 成为默认扩展名而不是 .cpp,请编辑列表顺序,使 - cc 是第一项,而 - cpp 是第二项,即交换前 2 行。
  • 现在将文件保存在您的 ST config Packages 目录中,路径为:../Packages/C++/C++.sublime-syntax。如果你愿意,你可以在 Packages 中创建一个 C++ 目录,然后使用 Ctrl+S 保存,因为路径将由 ST 自动设置,但文件不会保存,除非 ../Packages/C++/目录已经存在。
  • 注意:Linux 机器上的完整路径如下:/home/user/.config/sublime-text-3/Packages/C++/C++.sublime-syntax
  • Package Resource Viewer 插件的 Open Resource 命令面板命令可用于提取 .sublime-syntax 文件,而不是 ST 的本机 View Package File 命令。该插件将在必要时自动创建适当的 Packages 目录。

您修改后的 Packages/C++/C++.sublime-syntax 文件现在将覆盖 ST 附带的默认版本。您只需删除文件即可轻松恢复。如果您不覆盖同一目录中的任何其他文件,也可以安全地删除该目录。

唯一的问题是当您安装新版本的 ST 时。如果新安装的版本有更新的 C++.sublime-syntax 文件,您创建的本地版本将继续覆盖新版本。要解决此问题,请在安装新版本的 ST 时删除更改后的 Packages/C++/C++.sublime-syntax 文件,并在安装完成后重复上述步骤以恢复您首选的默认文件扩展名。

不幸的是,没有办法解决这个问题,您不能只用 file_extensions: 部分部分覆盖 C++.sublime-syntax 文件。当然,新版本的 ST 不会经常出现,C++.sublime-syntax 文件的更新频率更低。所以这不是主要问题。