当我在MacVim中编写html时,我在Web浏览器中保持相同的文件打开,以便我可以检查html输出。我不喜欢这种方法的一个原因是我经常不得不离开vim,去浏览器,然后重新加载html以查看更新。是否有一个更优雅的解决方案与vim将动态更新html输出,因为它是在vim中输入的?我似乎记得Textmate可以这样做吗?感谢。
更新: 我找到了我想要记住的视频。你可以在这里找到它:
答案 0 :(得分:6)
将此添加到您的 .vimrc :
" Refresh WebKit
nnoremap \r :Refresh<CR>
command! Refresh call RefreshWebKit()
function! RefreshWebKit()
silent !osascript -e 'tell application "WebKit"'
\ -e ' set p_url to URL of current tab of front window'
\ -e ' set URL of current tab of front window to p_url'
\ -e 'end tell'
endfunction
这将创建一个地图,一个命令和一个功能。我可以加入他们,但是 这样它就更清楚了,我可以在其他地方重用这个功能。
该函数调用一点AppleScript再次设置最前面的选项卡的URL, 从而令人耳目一新这将在Safari和WebKit下工作,但我不能 保证它适用于其他浏览器。如果没有,谷歌“刷新{浏览器} applescript“并使用不同的脚本。
地图只调用命令,该命令调用该函数。所以你可以写你的
文件并使用它刷新浏览器而不离开Vim。同样,使用
:Refresh
也可以这样做。
请注意,您可能想要更改一些内容:
\r
,使用你觉得舒服的任何东西。快速说明:传递给程序的额外-e
选项只是为了这个
可读性。以你想要的方式做它。
另请参阅自动命令(选中:h autocmd.txt)。这会让你 以更自动化的方式进行,例如:
:autocmd BufWrite *.html Refresh
每次为 .html 文件编写缓冲区时,都会调用:Refresh
。那里
也是插入文本的事件等。
答案 1 :(得分:3)
我已经看到了很多方法:
或简单的元标记:
<meta http-equiv="refresh" content="15" />
我喜欢高科技问题的技术解决方案,所以我实际上使用了meta标签,但sidyll的解决方案看起来很棒。
答案 2 :(得分:0)
我使用(osx)kicker ruby gem自动运行文件更改:
kicker -e "osascript -e 'tell application \"WebKit\" to do JavaScript \"window.location.reload()\" in first document'"
或者将其粘贴在.kick文件中,以便更好地控制哪些文件应该触发它和/或采取更多操作:
process do |files|
unless files.grep(/\.(html|css|js)$/).empty?
execute("osascript -e 'tell application \"WebKit\"
do JavaScript \"window.location.reload()\" in first document
end tell'")
end
end