Не тривиально. Самый простой способ - записать текущий файл во временный каталог, а затем запустить этот файл ... но это приведет к разрыву любых относительных ссылок (изображений, сценариев, файлов 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, базар и т. д. (все также имеют интеграцию с TextMate)
Если ваш код находится в режиме управления версиями, не имеет значения, сохраните ли вы его перед предварительным просмотром, вы также всегда можете вернуться к вашей последней подтвержденной версии, если вы что-то сломаете и потеряете буфер отмены.