TextMate: предварительный просмотр в Firefox без предварительного сохранения документа? - PullRequest
2 голосов
/ 07 апреля 2009

Использование TextMate:

Можно ли назначить ярлык для предварительного просмотра / обновления редактируемого документа HTML, скажем, в Firefox, не нажимая сначала кнопку Сохранить?

Мне нужна та же функциональность, что и во встроенном окне предварительного просмотра TextMate, но я бы предпочел внешний браузер вместо TextMate. (В основном для использования консоли JavaScript, такой как, например, Firebug).

Можно ли передать текущий несохраненный документ через оболочку, а затем выполнить предварительный просмотр в Firefox. И если да, есть ли у кого-нибудь команда TextMate для этого, желающая поделиться ею?

Ответы [ 4 ]

1 голос
/ 19 мая 2011

Открыть редактор пакетов (управление + опция + команда + B) Выделите HTML-пакет и разверните дерево. Выберите «Открыть документ в запущенных браузерах» Назначьте эквивалент ключа активации (ярлык) Закройте редактор пакетов

1 голос
/ 03 мая 2009

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

Если ваш код находится в режиме управления версиями, не имеет значения, сохраните ли вы его перед предварительным просмотром, вы также всегда можете вернуться к вашей последней подтвержденной версии, если вы что-то сломаете и потеряете буфер отмены.

1 голос
/ 13 мая 2010

Вот что вы можете использовать и просто заменить «Safari» на «Firefox»: http://wiki.macromates.com/Main/Howtos#SafariPreview

0 голосов
/ 03 мая 2009

Я не думаю, что это возможно. Однако вы можете включить опцию «атомарное сохранение», чтобы каждый раз, когда вы нажимаете вкладку в Firefox, ваш проект сохранялся.

Если вы когда-нибудь найдете решение, позволяющее получить надлежащий предварительный просмотр Firefox в реальном времени, сообщите нам.

...