我正在尝试做一些小的html web内容,并且发现每当我保存文件时能够看到通过浏览器查看的html文件的实时更新非常有用。我知道可能有IDE为你做这个,如果你推荐任何,请做,但我想制作一个脚本,只需在浏览器中打开文件,同时关闭该文件的版本已打开,以便我可以继续在vim中完成所有编程。
我知道我可以在Mac OSX中使用以下内容,将文件打开到我当前浏览器的新标签中:
open foo.html
但是,如果我在定时循环中发生这种情况,或者每次我在vim中编写(:w),我的浏览器都会填满新标签。有没有办法在打开新标签时关闭旧标签?或者有没有更好的方法,我没有考虑过?如果我可以继续在终端使用vim,那将是非常优选的。
提前致谢。
答案 0 :(得分:12)
您可以使用AppleScript重新加载标签。请参阅Benjie对this question的回答
使用osascript
从shell脚本调用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
答案 1 :(得分:3)
如果已存在foo.html
标签,则open foo.html
应将该标签重点放在Safari中。对于Chrome,您可以使用以下内容:
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
我刚刚在TextMate的open "$TM_FILEPATH" -a Safari
范围内将⌘R分配给text.html
。我还在切换到另一个应用程序时启用了保存文档,因此它基本上执行了编辑 - 保存 - 切换应用程序 - 刷新周期的最后三个步骤。
其他选择:
答案 2 :(得分:0)
对于您的应用程序可能有点过分,但我对所有HTML项目都使用make文件。我只为自己制作静态网站,但是我使用Less和Jade(有时在本地编译为静态页面的php,愚蠢的是你不能动态地包含在jade中)并且make与vim很好地集成。您可以制定编译,重新加载,推送到服务器等规则。我获得浏览器实时更新的方法是启动一个Node或python服务器来为html提供一个额外的javascript“观察者”,它有很多种类,具体取决于你使用的其他技术。
答案 3 :(得分:0)
您可以使用可以从套接字接收命令的浏览器,例如uzbl,luakit或dwb。
您可以使用扩展程序(插件,插件,无论您最喜欢的浏览器调用它)添加此功能(收听套接字,甚至是文件)。
您可以将一些javascript插入到您正在编辑的页面中,这样可以根据您可以从CLI控制的某些信号重新加载。
您可以编写一个会终止浏览器并重新打开它的脚本。某些浏览器会尝试加载页面的缓存版本。对于这些,您最好使用查询字符串并每次创建一个唯一的URI(例如open "foo.html?$(date +%s)"
)。
可能性无穷无尽!