• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

pyhtmlPreviewer: pyhtmlPreviewer 是针对 Vim 开发的 html 实时预览插件,采用 viml, ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

pyhtmlPreviewer

开源软件地址:

https://gitee.com/mightyang/pyhtmlPreviewer

开源软件介绍:

pyhtmlPreviewer

输入图片说明

介绍

pyhtmlPreviewer 是针对 Vim 写的 html 实时预览插件。

要求

  1. python3
  2. PySide2 >= 5.14(因为 5.14 里的 QWebEnginePage 里新加入了一个 NavigationTypeRedirect 选项,用于控制页面自动跳转)
  3. gvim(vim 会因为 pyside2 不是主线程运行而报错)

编写原因

最近在翻译一个 html 文档,尝试了各种 Vim 插件,大部分都要安装 nodejs 才能与浏览器实时预览,但是感觉没一个成功的(最近脸黑),而我只会 python,所以只好用 PySide2 的 QtWebEngineWidgets 模块弄了个浏览器的界面来实时预览。

原理

启动

在 VIM 的插件脚本里,采用多线程启动 app.exec_,由于 PySide2 本身速度不快,所以启动会比较慢。

网页与 python 的通讯

通过 PySide2 中的 qwebchannel.js 来实现网页与 VIM 之间的通讯。

同步定位

通过 python 的 HTMLParser 库解析 html 信息,给相关的 tag 添加了自定义属性:pyhtmlpos,值 "x,y"(x,y是源码中的位置,可以通过 HTMLParser 的 getpos 函数来获取),最后每次点击时,通过 qwebchanne.js 传递给 python,实现 VIM 的光标跳转。只能针对静态网页,动态无法实现。其中 HTMLParser 解析过程不快,所以将刷新由原先的实时改成保存时刷新。

安装教程

  1. 安装 python3.x(去官网下)
  2. 安装 PySide2.(pip install PySide2)
  3. vim-plug 插件安装:Plug 'https://gitee.com/mightyang/pyhtmlPreviewer.git'

使用说明

  1. 默认 html 文件打开会自动打开浏览器;
  2. 在上面的工具栏里加入编辑功能,开启后,网页跳转关闭,同步点击的 tag 位置与 VIM 中光标的位置,目前问题比如动态网页无法定位。

可控参数与命令:

参数

自动打开开关,默认开启

let g:pyhtmlPreviewerAutoOpen=1

文件格式绑定,如 '*.html,*.py,*.js', 默认'*.html'

let g:pyhtmlPreviewerFileType='*.html'

同步定位是否定位到 text 上,默认开启,否则定位到 tag 上,目前部分标签无法确定,比如

let g:pyHtmlPreviewerPosAtText=1

命令

窗口开光命令

PyHtmlPreviewToggle()

可以通过如下命令绑定快捷键:

map <F10> :call PyHtmlPreviewerToggle()<CR>


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap