我正在尝试建立一个自定义工具链,在该工具链中,浏览器(Firefox或Chrome最好是Chrome)经常/经常/不断地被强制从命令行刷新。
(其想法是立即在相邻的Emacs框架中查看我正在编辑的html / webapp中的视觉变化-无需不断切换至浏览器以进行手动刷新。)
到目前为止我最接近的是跑步google-chrome FILE_PATH
。但是,这每次都会打开一个新选项卡。
还有其他方法吗?
我正在尝试建立一个自定义工具链,在该工具链中,浏览器(Firefox或Chrome最好是Chrome)经常/经常/不断地被强制从命令行刷新。
(其想法是立即在相邻的Emacs框架中查看我正在编辑的html / webapp中的视觉变化-无需不断切换至浏览器以进行手动刷新。)
到目前为止我最接近的是跑步google-chrome FILE_PATH
。但是,这每次都会打开一个新选项卡。
还有其他方法吗?
Answers:
玩的东西
它使用xdotool,它使您可以编写Windows /桌面操作脚本。如果您提供浏览器的名称作为参数,它将找到并重新加载当前页面。您可以设置一个默认的浏览器,因此您不必每次都提供一个浏览器,并且可以更改是发送CTRL-R进行重新加载,还是发送SHIFT-CTRL-R进行重新加载而无需缓存。
它应该翻转到您的浏览器,重新加载页面,然后翻转回到您从中调用此窗口的任何窗口。我经常通过将浏览器置于后台并将编辑器窗口设置为“ ON-TOP”来使用它,以便始终可见,热键此脚本或从编辑器中调用它,并在完成后返回您的焦点。
我是vim用户,可以看到有一个自动命令可以在写入给定文件时自动触发此脚本,因此浏览器会在适当的时候刷新,我知道您也可以这样做。
#!/bin/bash
#
# L Nix <lornix@lornix.com>
# reload browser window
#
# whether to use SHIFT+CTRL+R to force reload without cache
RELOAD_KEYS="CTRL+R"
#RELOAD_KEYS="SHIFT+CTRL+R"
#
# set to whatever's given as argument
BROWSER=$1
#
# if was empty, default set to name of browser, firefox/chrome/opera/etc..
if [ -z "${BROWSER}" ]; then
BROWSER=firefox
fi
#
# get which window is active right now
MYWINDOW=$(xdotool getactivewindow)
#
# bring up the browser
xdotool search --name ${BROWSER} windowactivate --sync
# send the page-reload keys (C-R) or (S-C-R)
xdotool search --name ${BROWSER} key --clearmodifiers ${RELOAD_KEYS}
#
# sometimes the focus doesn't work, so follow up with activate
xdotool windowfocus --sync ${MYWINDOW}
xdotool windowactivate --sync ${MYWINDOW}
#
--name
参数与窗口标题栏中显示的字符串匹配,因此它可能并不总是包含浏览器的名称,如本例所示。
@lornix的答案对我来说不太有效(我不确定为什么,可能是我的窗口管理器不允许xdotool切换窗口)。我写了一个修改后的版本,它应该更强大:
(也使用F5而不是Ctrl-R,但这仅仅是因为我将Ctrl-R绑定到其他东西。)
#!/bin/bash
set -o errexit
set -o nounset
keystroke="CTRL+F5"
# set to whatever's given as argument, defaults to firefox
BROWSER="${1:-firefox}"
# find all visible browser windows
browser_windows="$(xdotool search --sync --all --onlyvisible --name ${BROWSER})"
# Send keystroke
for bw in $browser_windows; do
xdotool key --window "$bw" "$keystroke"
done
如果您使用的是Firefox,则“自动重新加载”是一个扩展,可在文件更改时重新加载。您可以添加文件,目录或本地主机,并编辑基于正则表达式的过滤器,从而实现所需的功能。我不知道在Chrome中对此有何补充。链接:https://addons.mozilla.org/zh-CN/firefox/addon/auto-reload/