2013-06-15 14 views
6

私はいくつかの小さなhtmlウェブの処理を試みていますが、私が保存したhtmlファイルのライブアップデートをブラウザーで見ることができれば、ファイル。おそらくあなたのためにこれを行うIDEがあることを知っています。もしあなたが何かをお勧めしたら、私はブラウザでファイルを開くだけのスクリプトを作ろうとしています。すでに開いているので、私はvimですべてのプログラミングを続けることができます。ターミナルコマンドを使用してブラウザにhtmlファイルを自動リロードする

は、私は私が私の現在のブラウザの新しいタブにファイルを開くには、マックOSXで次のように使用できることを知っている:

open foo.html 

しかし、私はこのタイミングループ上で発生している場合、またはすべての私がvimで書く時間(:w)では、ブラウザは新しいタブでいっぱいになります。新しいタブを開くときに古いタブを閉じる方法はありますか?それとも私が考慮していないこれまでのより良いアプローチがありますか?私がターミナルでvimを使い続けることができれば、非常に好ましいでしょう。

ありがとうございます。

+0

私はここにいくつかの代替ソリューション/ klugesが見つかりました:[/r/commandline](http://www.reddit.com/r/commandline/comments/1gdi4e/im_stumped_anyone_know_how_to_autoreload_an_html /) – ben

+0

このソリューションはコマンドラインを使用していませんが、開発中にのみ 'location.reload();'を使用してページをリロードする小さなJavaScriptを追加することができます。 –

答えて

3

すでにfoo.htmlのタブがある場合、open foo.htmlはSafariでそのタブをフォーカスする必要があります。私はTextMateでtext.html範囲にopen "$TM_FILEPATH" -a Safariに⌘Rを割り当てた

set u to "http://t.co/" 
tell application "Google Chrome" 
    repeat with w in windows 
     set i to 0 
     repeat with t in tabs of w 
      set i to i + 1 
      if URL of t is u then 
       set active tab index of w to i 
       set index of w to 1 
       tell t to reload 
       activate 
       return 
      end if 
     end repeat 
    end repeat 
    open location u 
    activate 
end tell 

:クロームでは、このようなものを使用することがあります。また、別のアプリケーションに切り替えるときに文書を保存できるようにしました。これは、基本的に、edit-save-switchアプリケーションのリフレッシュサイクルの最後の3つのステップを実行します。

その他のオプション:

+0

AppleScriptのサポートは動きのあるターゲットですが、このスクリプトはmacOS 10.12.6とChrome 62ですぐに使えます。最初の実行はロードされ、2番目のリフレッシュは別のタブにあっても実行されます。すばらしいです! ...別のウィンドウに切り替えると機能しません - 正しいタブ番号を見つけて、現在のウィンドウにリロードします。 – JeremyDouglass

10

AppleScriptを使用してタブをリロードすることができます。 Benjieの回答を参照してくださいthis question
osascriptを使用して、シェルスクリプトからAppleScriptを呼び出します。

osascript -e 'tell application "Google Chrome" to tell the active tab of its first window to reload' 

また、あなたが以前のすべてのタブを閉じるには、次のようなものを使用することができます:あなたはこのような何か買ってあげる

tell application "Google Chrome" 
    set windowList to every tab of every window whose URL starts with "http://stackoverflow.com" 
    repeat with tabList in windowList 
     repeat with thisTab in tabList 
      close thisTab 
     end repeat 
    end repeat 
end tell 
0

をそれはあなたのアプリケーションのためにやり過ぎかもしれないが、私はすべてのファイルを作る使用します私のHTMLプロジェクト。静的なサイトは自分で作成するだけですが、lessとJade(時には静的なページにコンパイルされたPHPもありますが、あなたが動的にjadeに含めることはできないというのは馬鹿です)を使って、vimと本当によく似ています。コンパイル、リロード、サーバーへのプッシュなどのルールを作ることができます。私がブラウザにライブアップデートを得る方法は、あなたが使っている他のテクノロジーに応じて、さまざまなバリエーションがある特別なjavascript 'watcher'を使ってhtmlを提供するためにNodeまたはPythonサーバーを起動することです。

0

あなたは、uzbl、luakit、またはdwbのようなソケットからコマンドを受信できるブラウザを自分で取得できます。

拡張機能(アドオン、プラグイン、お気に入りのブラウザが呼び出しているもの)を含むこの機能(ソケットやファイルを聴く)を追加できます。

編集中のページにjavascriptを挿入すると、CLIから制御できるシグナルが再読み込みされます。

ブラウザを強制終了して再度開くスクリプトを作成できます。一部のブラウザは、キャッシュされたバージョンのページを読み込もうとします。これらの場合は、クエリ文字列を使用して毎回一意のURIを作成する方がよい(例:open "foo.html?$(date +%s)")。

可能性は無限です!