Skip to content

Repository files navigation

Better Switch

Sublime Text 4 插件,替代默认的 switch_file 命令(Alt+O)。

通过统一的**循环组(cycle group)**配置模型,支持扩展名切换、目录替换、文件名后缀循环等多种文件切换模式。

安装

通过 git 将仓库克隆到 Sublime Text 的 Packages 目录下:

  1. 打开 Sublime Text,菜单 Preferences → Browse Packages...,打开 Packages 目录
  2. 在该目录下执行:
git clone https://github.com/chengche/better_switch.git
  1. 重启 Sublime Text,插件即可生效

更新插件时,进入插件目录执行 git pull 即可。

功能

  • 扩展名切换.h.cpp / .c / .cc 等,覆盖 Sublime 默认行为
  • UE 目录替换Public/Private/,支持任意子目录深度
  • MVC 后缀循环player_model.pyplayer_view.pyplayer_ctrl.py
  • MVC 目录循环models/user.pyviews/user.pycontrollers/user.py
  • 隐式组合 — 目录替换后自动叠加扩展名切换(如 Public/Foo.hPrivate/Foo.cpp
  • 已打开文件智能跳转 — 候选文件已在 tab 中打开时直接 focus,不重复打开

快捷键

快捷键 功能
Alt+O 切换到下一个匹配的文件

配置

通过菜单 Preferences → Package Settings → Better Switch 打开配置文件。

规则类型

每条规则定义一个循环组,cycle 中每个槽位是一个别名数组:

type 说明 匹配目标
extensions 替换文件扩展名 同目录下切换
directories 替换路径中的目录名 跨目录切换
suffixes 替换文件名后缀(扩展名前) 同目录下切换

默认配置

{
    "switch_rules": [
        // C/C++ 头文件 ↔ 源文件
        {
            "type": "extensions",
            "cycle": [
                ["h", "hpp", "hxx", "hh"],
                ["cpp", "c", "cc", "cxx", "m", "mm", "ipp", "inl"]
            ]
        },
        // UE Public/Private 目录切换
        {
            "type": "directories",
            "cycle": [["Public"], ["Private"]]
        }
    ]
}

自定义规则示例

MVC 后缀模式:

{
    "type": "suffixes",
    "cycle": [["_model", "_m"], ["_view", "_v"], ["_ctrl", "_c"]]
}

player_model.py → Alt+O → player_view.py → Alt+O → player_ctrl.py → Alt+O → 回到 player_model.py

MVC 目录模式:

{
    "type": "directories",
    "cycle": [["models"], ["views"], ["controllers"]]
}

models/user.py → Alt+O → views/user.py → Alt+O → controllers/user.py

cycle 语义

  • 每个槽位是别名数组,匹配时任意一个命中即可
  • 生成候选路径时使用第一个别名(canonical form)
  • 例如 ["_model", "_m"] 表示 _model_m 都能匹配,生成候选时使用 _model

搜索优先级

  1. 规则按配置中的数组顺序依次尝试
  2. 同目录的扩展名规则优先于跨目录规则(默认配置已按此顺序排列)
  3. directories / suffixes 规则找不到精确匹配时,自动叠加 extensions 规则做二次查找
  4. 多个候选文件存在时,选择第一个匹配的

注意事项

  • 配置中的扩展名别名请使用小写(匹配时大小写不敏感,但别名本身需小写)
  • directories 类型会替换路径中最后一个匹配的目录名(离文件最近的)
  • suffixes 类型在多个后缀都能匹配时,优先匹配最长的后缀

兼容性

  • Sublime Text 4(Python 3.8)
  • Windows / macOS / Linux

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages