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

标签 html vim textmate macvim

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

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

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

最佳答案

将此添加到您的 .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

这将创建一个 map 、一个命令和一个函数。我本可以加入他们,但是 这样它就更清晰了,我可以在其他地方重用这个函数。

该函数调用一点 AppleScript 再次设置最前面的标签页的 URL, 从而刷新它。这将在 Safari 和 WebKit 下工作,但我不能 保证它适用于其他浏览器。如果没有,谷歌“刷新{浏览器} applescript”并使用不同的脚本。

map 只是调用命令,命令调用函数。所以你可以写你的 文件并使用它来刷新浏览器而无需离开 Vim。同样,使用 :Refresh 做同样的事情。

请注意,您可能想要更改一些内容:

  • map 本身,我使用了 \r,使用任何你觉得舒服的东西。
  • 函数的名称,如果你想避免与其他现有的冲突 职能
  • 浏览器。这里我使用了 WebKit,它不是 Safari。这是夜间构建 WebKit 本身。使用 Chrome、Firefox 或任何其他名称(带有各自的 变化)

快速说明:传递给程序的额外 -e 选项只是为了方便 的可读性。以您想要的方式进行。


也看看自动命令(检查 :h autocmd.txt )。这会让你 以更自动化的方式进行,例如:

:autocmd BufWrite *.html Refresh

每次您为 .html 文件写入缓冲区时,这将调用 :Refresh。那里 也是插入文本等的事件。

关于html - 有没有办法用 vim 动态检查 html 输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7371674/

相关文章:

html - CSS 显示表不遵守固定高度

python - jedi 应该安装在每个 python 项目环境中吗?

c++ - 在 textmate 中使用 cin 和 cout

javascript - 在 JS 中创建的 SVG <image> 元素不显示

jquery - 关于css overflow和平移缩放的一些问题

vim - 如何防止在 Vim 中遍历跳转列表时离开当前缓冲区?

vim - 表达式寄存器的目的是什么?

ruby - 为什么 Textmate 将 *.rb 文件视为纯文本

regex - 我如何使用TextMate对csv文件的每个值加上双引号?

javascript - 如何将列表项移动到第一个位置然后再返回?