FastSwitch
Sublime Text 2插件。用于在文件间切换
详细信息
安装次数
- 总数 734
- Win 415
- Mac 152
- Linux 167
8月6日 | 8月5日 | 8月4日 | 8月3日 | 8月2日 | 8月1日 | 7月31日 | 7月30日 | 7月29日 | 7月28日 | 7月27日 | 7月26日 | 7月25日 | 7月24日 | 7月23日 | 7月22日 | 7月21日 | 7月20日 | 7月19日 | 7月18日 | 7月17日 | 7月16日 | 7月15日 | 7月14日 | 7月13日 | 7月12日 | 7月11日 | 7月10日 | 7月9日 | 7月8日 | 7月7日 | 7月6日 | 7月5日 | 7月4日 | 7月3日 | 7月2日 | 7月1日 | 6月30日 | 6月29日 | 6月28日 | 6月27日 | 6月26日 | 6月25日 | 6月24日 | 6月23日 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Mac | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
README
FastSwitch
Sublime Text 2/3插件。用于在文件间切换
具有指定语法的文件将切换到具有相同基本名但具有不同用户定义扩展名的文件。将在用户定义的目录列表中搜索该文件。第一个满足条件的文件将是Sublime Text 2/3将切换到的文件。
如果使用此快速切换算法找不到文件,则将遍历路径。如果遍历的路径包含用户定义目录的子字符串,则将搜索用于切换的文件。
2017/06/08
新功能: - 如果在提供的路径中找不到文件,将使用基于gmatte11/sublime-text-switch-file在github上的工作的新算法遍历路径,并在用户定义目录的子字符串中搜索路径。这较慢,但可以找到更多,而不会提供太多的路径。
2015/03/21
新功能: - 现在可以在设置中指定前缀的情况下切换到具有不同前缀的文件。
前缀从文件名中删除,就像扩展名一样,并添加其他行的设置中的前缀和扩展名。
参见以下示例6和9。 - 如果设置中有超过两行,则可以在超过两个文件之间循环。 >BR> 参见以下示例7和9
以下是一个设置示例
// For the settings you define the syntax for which the extension and directory applies
// "syntax_X": [
// [["ext_A1, ext_A2"], ["directory_A1", directory_A2]],
// [["ext_B1", "ext_B2"], ["directory_B1", "directory_B2"]]
// ]
// N.B. The "syntax_X" must be the string found in the lower right corner if the SublimeText 2/3
// Example: "Plain Text", "C++". "Python", "Markdown"
//
// settings with the new feature:
// "syntax_Y": [
// [["ext_A1, ext_A2"], ["directory_A1", directory_A2], {"prefixes": ["prefix_A1_", "prefix_A2_"]}],
// [["ext_B1", "ext_B2"], ["directory_B1", "directory_B2"], {"prefixes": ["prefix_B_"]}],
// [["ext_C1"], ["directory_C1", ""]]
// ]
// N.B. The {"prefixes": ["prefix_A1", "prefix_A2"]} is optional and can be ommitted
//
//
// With the above settings when in syntax_X (Ex C++) and you are currently in the file:
// .../foo/bar/directory_A1/file.ext_A1
//
// using the fastswitch pluging then the pluging will try to open the file:
// foo/bar/directory_B1/file.ext_B1
// foo/bar/directory_B1/file.ext_B2
// foo/bar/directory_B2/file.ext_B1
// foo/bar/directory_B2/file.ext_B2
//
//
// With the above settings when in syntax_Y and you are currently in the file:
// .../foo/bar/directory_A1/prefix_A1_file.ext_A1
//
// using the fastswitch pluging then the pluging will try to open the file:
// foo/bar/directory_B1/prefix_B_file.ext_B1
// foo/bar/directory_B1/prefix_B_file.ext_B2
// foo/bar/directory_B1/prefix_B_file.ext_B1
// foo/bar/directory_B1/prefix_B_file.ext_B2
// foo/bar/directory_B1/prefix_B_file.ext_B2
// foo/bar/directory_C1/file.ext_C1
// foo/bar/file.ext_C1
//
//
// The first existing file will be openned so the order is important.
//
//
// N.B. The "." will be replaced by the current directory
// Ex: If you are currently in c:\foo\src\bar\file.cpp the "include\." correspond to "include\bar"
// The "@d" means to replace the tag by the corresponding directory in path of the current file.
// d must be a negative number
// Ex:
// If you are currently in c:\foo\bar\src\file.cpp the "@-1" correspond to the directory "bar"
//
// For the C++ syntax, I'm using the following
"C++": [
[ [".cpp"], ["src", "../src", "../../src/."] ],
[ ["h", "hpp"], [".", "include", "include/@-1", "../include/@-2/."] ]
],
"verbosity": 0
使用上述设置时,如果在C++中,您目前在文件: * …/foo/bar/src/file.cpp 中使用FastSwitch插件,插件将尝试打开文件: * …/foo/bar/src/file.h # 因为存在“。” * …/foo/bar/src/file.hpp # 因为存在“。” * …/foo/bar/include/file.h * …/foo/bar/include/file.hpp
如果您目前正在文件: * …/foo/bar/include/file.hpp 中使用FastSwitch插件,插件将尝试打开文件: * …/foo/bar/src/file.cpp
以下示例使用 FastSwitch 插件的先进设置,以便在目录树之间的关系更复杂的情况下在不同的文件之间进行切换。
对于每个示例,设置都尽可能简约以展示当前功能。所有设置都可以组合使用,以实现强大、快速且灵活的切换。
示例 1:使用以下设置
"C++": [
[ [".cpp"], ["src"] ],
[ ["hpp"], ["."] ]
]
或者
"C++": [
[ [".cpp"], ["."] ],
[ ["hpp"], ["."] ]
]
以及包含给定文件的以下目录
ls ./foo/src => test1.cpp, test1.hpp
当在以下文件中时:./foo/src/test1.cpp,你应该能够切换到 ./src/test1.hpp
当在以下文件中时:./foo/src/test1.hpp 应切换到 ./src/test1.cpp
示例 2:使用以下设置
"C++": [
[ [".cpp"], ["src"] ],
[ [".h"], ["include"] ]
]
以及包含给定文件的以下目录
ls ./foo/src => test2.cpp
ls ./foo/include => test2.h
使用 FastSwitch 插件
当在以下文件中:./foo/src/test2.cpp 时,将切换到 ./include/test2.h
当在以下文件中:./foo/include/test2.hpp 时,将切换到 ./src/test2.cpp
示例 3:使用以下设置
"C++": [
[ [".cpp"], ["../src"] ],
[ [".h"], ["include/@-1"] ]
]
以及包含给定文件的以下目录
ls ./foo/src => test3.cpp
ls ./foo/include/foo => test3.h
当在以下文件中:./foo/src/test3.cpp 时,将切换到 ./foo/include/foo/test3.hpp
当在以下文件中:./foo/include/foo/test3.hpp 时,将切换到 ./foo/src/test3.cpp
示例 4:使用以下设置
"C++": [
[ [".cpp"], ["../../src/."] ],
[ [".h"], ["../include/@-2/."] ]
]
以及包含给定文件的以下目录
ls ./foo/src/bar => test4.cpp
ls ./foo/include/foo/bar/ => test4.h
当在以下文件中:./foo/src/bar/test4.cpp 时,将切换到 ./foo/include/foo/bar/test4.hpp
当在以下文件中:./foo/include/foo/bar/test4.hpp 时,将切换到 ./foo/src/bar/test4.cpp
示例 5:使用以下设置
"Javascript": [
[[".js"], ["public/js"]],
[["Spec.js"], ["../test"]]
]
以及包含给定文件的以下目录
ls ./foo/public/js => test5.js
ls ./foo/test => test5Spec.js
当在以下文件 ./foo/public/js/test5.js 中时,将切换到 ./foo/test/test5Spec.js
当在以下文件 ./foo/test/test5Spec.js 中时,将切换到 ./foo/public/js/test5.js
示例 6:使用以下设置
"C++":[
[[".py"], [".", "..", ""] ],
[['.py'], [".", "./test", "./tests"], {"prefixes": ["test_", "test"]}]
]
以及包含给定文件的以下目录
ls ./Test6 => test6.cpp
ls ./Test6/test => test_test6.cpp
当在以下文件 ./Test6/test6.cpp 中时,将切换到 ./Test6/test/test_test6.cpp
当在以下文件 ./Test6/test/test_test6.cpp 中时,将切换到 ./Test6/test6.cpp
示例 7:使用以下设置
"Javascript": [
[[".controller.js"], ["."]],
[[".template.html"], ["."]],
[[".service.js"], ["."]]
],
"HTML": [
[[".template.html"], ["."]],
[[".service.js"], ["."]],
[[".controller.js"], ["."]],
]
以及包含给定文件的以下目录
ls ./Test7 => test7_A.controller.js test7_A.service.js test7_A.template.html test7_B.controller.js test7_B.service.js
当在以下文件 ./Test7/test7_A.controller.js 中时,将切换到 ./Test7/test7_A.template.html
当在以下文件 ./Test7/test7_A.template.html 中时,将切换到 ./Test7/test7_A.service.js
当在以下文件 ./Test7/test7_A.service.js 中时,将切换到 ./Test7/test7_A.controller.js
当在以下文件 ./Test7/test7_B.controller.js 中时,将切换到 ./Test7/test7_B.service.js
当在以下文件 ./Test7/test7_B.service.js 中时,将切换到 ./Test7/test7_B.controller.js
示例 8:使用以下设置
"C++": [
[[".cpp"], ["../../src/."], {"prefixes":[""]}],
[[".h", ".hpp"], ["../include/@-2/@0"], {"prefixes":[""]}]
]
以及包含给定文件的以下目录
ls ./Test_8/foo/src/bar => test8_A.cpp test8_B.cpp
ls ./Test_8/foo/include/foo/bar/ => test8_A.h test8_B.hpp
当在以下文件:./Test_8/foo/src/bar/test8_A.cpp 中时,将切换到 ./foo/include/foo/bar/test8_A.h
当在以下文件:./Test_8/foo/include/foo/bar/test8_A.h 中时,将切换到 ./foo/src/bar/test8_A.cpp
示例 9
"C++": [
[[".cpp"], [".", ""]],
[[".h"], ["."]],
[[".cpp"], ["./unittest"], {"prefixes":["t_"]}]
]
以及包含给定文件的以下目录
ls ./Test_9/ => test9_A.cpp test9_A.h test9_B.cpp test9_B.h
ls ./Test_9/unittest/t_test9_A.cpp
当在以下文件:./Test_9/test9_A.cpp 中时,将切换到 ./Test_9/test9_A.h
当在以下文件:./Test_9/test9_A.h 中时,将切换到 ./Test_9/unittest/t_test9.cpp
当在以下文件:./Test_9/unittest/test9_A.cpp 中时,将切换到 ./Test_9/test9_A.cpp
当在以下文件:./Test_9/test9_B.cpp 中时,将切换到 ./foo/src/bar/test9_B.h
当在以下文件:./Test_9/test9_B.h 中时,将切换到 ./foo/src/bar/test9_B.cpp
安装
- 安装 FastSwitch 最简单的方式是通过优秀的 Package Control 插件。请参阅 http://wbond.net/sublime_packages/package_control#Installation
- 安装包控制后,打开命令面板(cmd+shift+P 或 ctrl+shift+P)
- 输入“安装”,选择“Package Control: 安装包”
- 从列表中选择FastSwitch。Package Control将会自动为您更新它
- 如果您不想使用包控制,您可以手动安装它
- 前往您的包目录并输入
git clone --recursive https://github.com/papaDoc/FastSwitch FastSwitch
* 若要更新,请运行以下命令:git pull && git submodule foreach --recursive git pull origin master
* 返回到编辑器,通过按下cmd+shift+P 或 ctrl+shift+P打开命令面板。输入FastSwitch并打开您想要修改的设置文件
使用单元测试验证您的更改
python lib/fastswitch.py