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

有没有办法用vim动态检查html输出?,html,vim,textmate,macvim,Html,Vim,Textmate,Macvim,当我在MacVim中编写html时,我会在web浏览器中打开相同的文件,以便检查html输出。我不喜欢这种方法的一个地方是,我经常不得不离开vim,转到浏览器,重新加载html以查看更新。是否有一个更优雅的vim解决方案可以在vim中键入html输出时动态更新它?我似乎记得Textmate可以做到这一点?谢谢 更新: 我找到了我想要记住的视频。你可以在这里找到它: 将此添加到您的.vimrc中: “刷新WebKit nnoremap\r:刷新 命令!刷新调用RefreshWebKit() 函数!

当我在MacVim中编写html时,我会在web浏览器中打开相同的文件,以便检查html输出。我不喜欢这种方法的一个地方是,我经常不得不离开vim,转到浏览器,重新加载html以查看更新。是否有一个更优雅的vim解决方案可以在vim中键入html输出时动态更新它?我似乎记得Textmate可以做到这一点?谢谢

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

将此添加到您的.vimrc中:

“刷新WebKit
nnoremap\r:刷新
命令!刷新调用RefreshWebKit()
函数!RefreshWebKit()
静默!osascript-e'告诉应用程序“WebKit”'
\-e“将p_url设置为前窗口当前选项卡的url”
\-e“将前窗口当前选项卡的URL设置为p_URL”
\-e“结束讲述”
端功能
这将创建一个映射、一个命令和一个函数 这样就更清晰了,我可以在其他地方重用这个函数

函数调用一点AppleScript来再次设置最前面选项卡的URL, 这将在Safari和WebKit下工作,但我不能 保证它能与其他浏览器一起工作。如果不能,谷歌“刷新{browser}” 并使用不同的脚本

映射只调用命令,该命令调用函数。因此,您可以编写 文件并使用它刷新浏览器而不离开Vim
:刷新以执行相同操作

请注意,您可能需要更改某些内容:

  • 地图本身,我用的是
    \r
    ,用你觉得舒服的任何东西
  • 如果要避免与其他现有函数发生冲突,则函数的名称 功能
  • 浏览器。这里我用的是WebKit,它不是Safari。它是夜间构建的 使用Chrome、Firefox或任何其他名称(带有相应的 (更改)
简要说明:传递给程序的额外
-e
选项只是为了方便起见 可读性。按照你想要的方式来做


看看自动命令(检查)。这会让你 以更自动化的方式进行操作,如:

:autocmd BufWrite *.html Refresh
每次为.html文件编写缓冲区时,都会调用
:Refresh

还有用于插入文本等的事件。

我看到了很多方法:

  • (对我来说是新的)
或者一个简单的元标记:

<meta http-equiv="refresh" content="15" />

我喜欢高科技问题的lo-tech解决方案,因此我实际上使用了meta标记,但sidyll的解决方案似乎非常出色。

我使用(osx),它可以在文件更改时自动运行:

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

你知道如何在TM中做到这一点吗?我记不起原始来源。Mac上的一个可能解决方案是,它可以与各种编辑器一起工作。不幸的是,它不会动态更新。嗯,我不是TextMate用户:-)我想说的是,Vim不是为TextMate用户设计的。Vim来自另一个背景,所以如果你真的想学习如何使用它,学习Vim的方法。当你成为一个流利的用户后,这些事情将很容易完成。我看到许多用户说“我如何在Vim中做到这一点?”?TextMate是这样做的…“日复一日。这让我很紧张。我知道,这是一种宗教战争。谢谢西迪尔,不用担心——我已经使用Vim一段时间了。我不想复制TM功能;相反,我只是在寻找一种使用任意文本编辑器动态呈现html的方法。在我的特定用例中,这恰好是Vim。我希望这是有道理的。谢谢,当然可以。我贴了一个答案,里面有一些东西可以帮助你。我已经有了这个,它非常有用,但不想以任何方式与TM相似:-)@dr.bunsen,视频中说的是降价,但我所有的答案都是基于html文件…这是你最初的问题,对吗?哇,这看起来棒极了!是的,我只关心html,但我链接的视频是降价的。我会试试你的剧本,然后再报告。谢谢谢谢,这很有效。这不是一个动态的解决方案,但我认为考虑到可用的选项,这将是最好的。很高兴帮助@dr.bunsen。这是非常灵活的,所以你最终会发现它的最佳用途。查看文档中的自动命令并播放事件,例如将BufWrite更改为插入的文本事件。感谢Romaill,这非常聪明!我认为这将是完美的,除了在发布之前记得删除meta标记的额外开销。