对于那些需要在远程机器上(比方说一个利用samba共享你的被访问文件的linux)运行什么的EditPlus用户们,我搞出来了一个比较方便的东东.
我的情况是,我们使用templating处理那些需要每次都要重新生成的文件. 在以前, 这意味着得开两个窗口 - 一个是EditPlus,而另外一个是工作目录的ssh会话.今天早晨,在一些"肯定有更好的方法"的思考中的一片刻,我做了一些尝试,并找到了这个步骤:
- 使用EditPlus的 "用户工具(user tools)" , 建立一个和远程机器的连接
- 通过plink(Windowsvia plink (Win) ssh到那台机器
- 然后通过这个接口执行命令
这看起来有一点PHP技巧才能使之完全正确地工作,不过以下就是如何去做到这点的方法:
- 下载plink
- 在EditPlus中,到工具(Tools) -> 配置用户工具(Configure User Tools)
- 点击 "添加(Add)" 并选择 "程序(Program)"
- 在"菜单文本(Menu Text)"中把程序名修改成你喜欢的
- 在命令(Command)框中添加需要执行的命令.
这里,我想通过ssh连接到远程机器,并运行命令把我正在处理的文件重新提交.这是我所输入的命令:
plink.exe user@server -pw mypass /usr/local/bin/retemp.php
- 添加一个参数
这里我输入 '$(FilePathNoDrv)'(当然,需要用引号引起来),给文件附加路径,而且不带盘符
- 单击 "捕捉输出(Capture Output)" 和"保存打开的文件(Save open files)"
- 点击 "确定(Ok)" 保存设置
这样你就可以到工具(Tools)菜单查看它的组合键,就这样,一切都设置好了.EditPlus比较好的一点是,它给出了一个在运行工具时同时保存文件的选项.而对我而言,只是少了个别的快捷键.
在另外一端的PHP脚本需要做一点事情,以正确地处理EditPlus的输入- 以下是个例子:
代码:
-
#!/usr/local/bin/php
-
-
$in=file_get_contents("php://input");
-
exec('/usr/local/bin/template.sh /www/web/'.str_replace('\\','/',$_SERVER['argv'][1]),$out);
-
//print_r($out);
为了万一你需要输出一些调试信息,我保留了$out变量.因为脚本传值的方式(毕竟是Windows软件),我们需要处理反斜杆(\)以便在linux文件系统下工作.所以,在EditPlus中,我的路径类似于 H:\www\docroot\myfile.tpf,脚本将会把它映射到 /www/docroot/myfile.tpf,并执行template.sh, 然后被重新发布.
就这些 - 希望对你有所帮助!