2

TextMate の使用:

最初に [保存] を押さなくても、Firefox などで現在編集中の HTML ドキュメントをプレビュー/更新するためのショートカットを割り当てることはできますか?

TextMate の組み込みの Web プレビュー ウィンドウと同じ機能を探していますが、TextMate の代わりに外部ブラウザーを使用したいと考えています。(主に、たとえば Firebug などの JavaScript コンソールを使用するため)。

現在保存されていないドキュメントをシェルにパイプして、Firefox でプレビューすることは可能でしょうか。もしそうなら、このための TextMate コマンドを持っていて、それを共有してくれる人はいますか?

4

4 に答える 4

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()

私が言ったように、それはおそらく大きな問題である相対的なリソース リンクでは機能しません.. 別のオプションは、終了する "Refresh Browsers" コマンドから、次のコード行を変更することです:

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

JavaScript でページをリロードする代わりに、ページをクリアし、一連のdocument.write()呼び出しを使用して現在のドキュメントを書き込むことができます。これに関する問題は、現在のドキュメントが置き換えたいものであることを保証できないことです..Windows 1は、特にタブブラウジングで別のサイトなどに変更された可能性があります..

最後に、大きな欠点のないオプション: バージョン管理を使用します。特に、リモート サーバーに変更を送信する必要がない "分散型" バージョン管理の 1 つ (git、mercurial、darcs、bazaar など) を使用します (すべてに TextMate 統合もあります)

コードがバージョン管理されている場合、プレビューする前に保存しても問題ありません。何かを壊して元に戻すバッファを失った場合は、最後にコミットしたバージョンにいつでも戻ることができます。

于 2009-05-03T15:50:15.723 に答える
1

「Safari」を「Firefox」に置き換えるだけで使用できるものを次に示します。 http://wiki.macromates.com/Main/Howtos#SafariPreview

于 2010-05-13T19:21:28.927 に答える
1

バンドル エディターを開きます (コントロール + オプション + コマンド + B) HTML バンドルまでスクロールし、ツリーを展開します [実行中のブラウザーでドキュメントを開く] を選択します 同等のアクティベーション キーを割り当てます (ショートカット) バンドル エディターを閉じます

于 2011-05-19T04:14:55.200 に答える
0

これは不可能だと思います。ただし、「アトミック保存」オプションを有効にして、Firefoxにタブを変更するたびにプロジェクトが保存されるようにすることができます。

適切なFirefoxライブプレビューを作成するための解決策を見つけた場合は、お知らせください。

于 2009-05-03T14:50:38.147 に答える