有没有办法用vim动态检查html输出?

时间:2011-09-10 12:29:08

标签: html vim textmate macvim

当我在MacVim中编写html时,我在Web浏览器中保持相同的文件打开,以便我可以检查html输出。我不喜欢这种方法的一个原因是我经常不得不离开vim,去浏览器,然后重新加载html以查看更新。是否有一个更优雅的解决方案与vim将动态更新html输出,因为它是在vim中输入的?我似乎记得Textmate可以这样做吗?感谢。

更新: 我找到了我想要记住的视频。你可以在这里找到它:

http://files.fletcherpenney.net/TextMate-Preview.mov

3 个答案:

答案 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,使用你觉得舒服的任何东西。
  • 函数的名称,如果您想避免与其他现有的冲突 功能
  • 浏览器。在这里我使用的是WebKit,它不是Safari。这是每晚的构建 WebKit本身。使用Chrome,Firefox或任何其他名称(与相应的名称相同) 改变)

快速说明:传递给程序的额外-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