TextMate:在Firefox中预览而不必先保存文档?

时间:2009-04-06 23:17:05

标签: refresh command textmate pipe preview

使用TextMate:

是否可以指定一个快捷方式来预览/刷新当前编辑过的HTML文档,例如Firefox,而不必先点击保存?

我正在寻找与TextMate的内置Web预览窗口相同的功能,但我更喜欢外部浏览器而不是TextMate。 (主要是为了使用诸如Firebug之类的JavaScript控制台)。

是否可以通过shell管道当前未保存的文档,然后在Firefox中预览。如果有的话,是否有人为此创建了TextMate命令,愿意分享它?

4 个答案:

答案 0 :(得分:1)

不是琐碎的。最简单的方法是将当前文件写入临时目录,然后启动该文件..但是,这会破坏任何相对链接(图像,脚本,CSS文件)

添加一个包:

Input: Entire Document
Output: Discard
Scope Selector: source.html

脚本:

#!/usr/bin/env python2.5

import os
import sys
import random
import tempfile
import subprocess

fname = os.environ.get("TM_FILEPATH", "Untitled %s.html" % random.randint(100, 1000))
fcontent = sys.stdin.read()

fd, name = tempfile.mkstemp()
print name

open(name, "w+").write(fcontent)

print subprocess.Popen(["open", "-a", "Firefox", name]).communicate()

正如我所说,这不会与相对资源链接一起工作,这可能是一个大问题。另一个选择是从现有的“刷新浏览器”命令修改以下代码行:

osascript <<'APPLESCRIPT'
    tell app "Firefox" to Get URL "JavaScript:window.location.reload();" inside window 1
APPLESCRIPT

不是让javascript重新加载页面,而是可以清除它,并使用一系列document.write()调用来编写当前文档。这个问题是你不能保证当前的文件是你要替换的文件.Windows 1可能已经改为另一个网站等,特别是标签浏览..

最后,一个没有巨大缺点的选项:使用版本控制,特别是其中一个“分布式”控件,您不必将更改发送到远程服务器 - git,mercurial,darcs, bazaar等(也都有TextMate集成)

如果您的代码处于版本控制状态,那么在预览之前保存是无关紧要的,如果您破坏某些内容并丢失撤消缓冲区,也可以始终返回上次提交的版本。

答案 1 :(得分:1)

您可以使用以下内容,只需将“Safari”替换为“Firefox”即可: http://wiki.macromates.com/Main/Howtos#SafariPreview

答案 2 :(得分:1)

打开Bundle Editor(控制+选项+命令+ B) 滚动到HTML Bundle并展开树 选择“在运行的浏览器中打开文档” 分配激活密钥等效(快捷方式) 关闭包编辑器

答案 3 :(得分:0)

我不认为这是可能的。但是,您可以启用“原子保存”选项,以便每次将选项卡添加到Firefox时都会保存项目。

如果您找到合适的Firefox实时预览解决方案,请告诉我们。