fido
在 Sublime Text (v2 或 v3) 项目中的文件保存时运行命令。
详细信息
安装量
- 总数 130
- _win 43
- _mac 49
- _lin 38
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 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Linux | 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 |
阅读文件
Fido
Fido 是 Sublime Text (version 2 和 3) 的插件,用于在项目中的文件保存时运行命令。
安装
最简单的方式是使用 Package Control。
“复杂”的方法是手动使用 git 安装 Fido。首先,打开 Sublime Text 的数据目录下的 Packages
子目录:* Windows %APPDATA%\Sublime Text 2
或 %APPDATA%\Sublime Text
* OS X: ~/Library/Application Support/Sublime Text 2
或 ~/Library/Application Support/Sublime Text
* Linux ~/.config/sublime-text-2
或 ~/.config/sublime-text
* 可移植安装:Sublime Text 2/Data
或 Sublime Text/Data
然后克隆此仓库
git clone git://github.com/nerdo/fido.git
使用方法
Fido 在保存文件时通过查找项目中的操作。最简单的配置是设置顶级 fido 命令,随时随地保存项目中定义的任何路径上的文件时执行。例如,您的项目文件可能如下所示
{
"folders":
[
{
"follow_symlinks": true,
"path": "/my/sublime/project"
},
{
"path": "/another/path"
}
],
"fido": "cake build"
}
此配置在保存 folders
中定义的项目路径上的文件时运行 cake build
。该命令将工作目录设置为保存文件的文件夹,因此如果在 /another/path/scripts/file.coffee
保存文件,则从 /another/path
运行 cake build
。
您可以通过打开控制台来看到 Fido 的工作情况。
fido$ cake build
This is the output of cake build!
您还可以为每个文件夹设置不同的命令
{
"folders":
[
{
"follow_symlinks": true,
"path": "/my/sublime/project",
"fido": "cake build"
},
{
"path": "/another/path",
"fido": "rm -f ./tmp/generated-output.txt"
}
]
}
在这个例子中,只有当在 /my/sublime/project
上保存文件时,才会运行 cake build
。当文件在路径 /another/path
上保存时,使用命令 rm -f ./tmp/generated-output.txt
删除文件 /another/path/tmp/generated-output.txt
。
如果您想在整个路径上运行 cake build
,但在保存 /another/path
内部的文件时仅删除那个临时文件,怎么办?没问题。定义您的设置如下
{
"folders":
[
{
"follow_symlinks": true,
"path": "/my/sublime/project"
},
{
"path": "/another/path",
"fido": "rm -f ./tmp/generated-output.txt"
}
],
"fido": {
"command": "cake build",
"alwaysRun": true
}
}
在这个场景中,Fido 命令被定义为一个具有 command
和 alwaysRun
属性的对象。
如果 alwaysRun
设置为 false(默认值),则在找到更具体的命令(如删除临时文件)时,该命令将不会运行。
大多数项目都是使用单个文件夹设置的,但您可能希望为项目中不同部分的文件运行不同的命令。可以通过将 fido 设置为数组来实现这一点。一个更符合现实世界的项目可能如下所示
{
"folders":
[
{
"follow_symlinks": true,
"path": "/my/sublime/project"
},
],
"fido": [
{
"follow_symlinks": true,
"path": "/my/sublime/project/scripts/coffee",
"command": "cake build"
},
{
"path": "/my/sublmime/project/scss",
"command": "sass --style compressed site.scss ../css/site.css"
},
{
"command": "growlnotify -m'Insanely annoying message every time a file is saved' -t'Annoying Notification'",
'alwaysRun': true
}
]
}
这样设置 Fido 来运行一些命令。首先,当在路径 /my/sublime/projects/scripts/coffee
上保存文件时,将运行 cake build
。注意,follow_symlinks
选项与在文件夹中定义时的意义相同。
然后有一个 sass
命令,用于在文件的路径上保存时重新编译 scss 文件到 css。
最后,还有一个在每个项目中保存的文件上运行的命令,这是一种运行 growlnotify
的命令,没有明显的理由……好吧,所以这不是一个 完全 现实世界的例子 :P
因为大多数人不会通常从命令行启动 sublime,所以您可能无法设置您期望的环境路径。例如,如果您尝试运行 cake build
,您可能在您的控制台中看到如下:
fido$ cake build
/bin/sh: cake: command not found
如果得到这样的错误,您需要设置您的环境路径,打开终端并检查您的 PATH
变量。
在 OS X 和 *nix 上:echo $PATH
复制这个值,并按照以下方式设置
{
"folders":
[
{
"follow_symlinks": true,
"path": "/my/sublime/project"
},
],
"fido": [
{
"follow_symlinks": true,
"path": "/my/sublime/project/scripts/coffee",
"command": "cake build",
"env": {
"PATH": "<<< PATH COPIED FROM COMMAND LINE HERE >>>"
}
},
{
"path": "/my/sublmime/project/scss",
"command": "sass --style compressed site.scss ../css/site.css",
"env": {
"PATH": "<<< PATH COPIED FROM COMMAND LINE HERE >>>"
}
},
{
"command": "growlnotify -m'Insanely annoying message every time a file is saved' -t'Annoying Notification'",
'alwaysRun': true,
"env": {
"PATH": "<<< PATH COPIED FROM COMMAND LINE HERE >>>"
}
}
]
}
根据您的命令位于文件系统中的位置,可能需要也可能不需要设置路径,但是将它们包含在每个命令中可能是一个好主意。
顺便说一下,任何环境变量都可以通过在 env 对象上设置键值对来设置,而不仅仅是 PATH。
特别感谢
特别感谢 titoBouzout,允许多次使用他的 SideBarEnhancements 插件中的一段代码,以在 ST2 中正确地让其工作。