Awesome Open Source
Awesome Open Source

Vimium C - All by Keyboard

Version MIT license GitHub stars Gitee star Code alerts

Firefox 63+ users rating Chrome 47+ users

Visit on Firefox Add-ons / Microsoft Edge Add-ons / Chrome Web Store

A Customized Vimium (to click web page content and manipulate browser windows using only keyboard) having Chinese support, global Commands and injection functionality, in C-style code for quicker action and less resource cost.

Vimium 的一款修改版(可以用键盘点击网页内容、操作浏览器窗口),添加了完整的中文支持、全局快捷键功能,还能运行在某些接受 Vimium C 的扩展程序的私有页面里,并且对CPU和内存资源的消耗很低。

阅读中文介绍 (description in Chinese) 。

This project is mainly developed and maintained by gdh1995, and licensed under the MIT license.

本项目主要由 gdh1995 开发并维护,且以 MIT 许可协议 开源。

It (the released version) supports the new MS Edge, Chrome and other Chromium-based browsers whose core versions are >= 47, and has a prefect support for a recent Firefox (since version 63.0). It can even run on MS Edge (EdgeHTML), though there're still some errors. If re-compiled from the source code, Vimium C is able to support Chromium 32~46.

它支持内核版本不低于 47 的新版 Microsoft Edge、Chrome 和其它以 Chromium 为内核的浏览器, 同时也能完美运行在近些年发布的 Firefox 63 和更高版本上,甚至在 Edge (EdgeHTML 内核) 上也能正常执行大部分命令。 如果从源码重新编译,Vimum C 还可以支持 Chromium 32~46。

Usage Demo of Vimium C

This project is hosted on https://github.com/gdh1995/vimium-c and https://gitee.com/gdh1995/vimium-c .

An old name of this project is "Vimium++", which has been given up on 2018-08-21.

Project Introduction

Vimium C:

  • 中文介绍 (description in Chinese)
  • a web extension for MS Edge, Firefox and Chrome that provides keyboard-based navigation and control of the web, in the spirit of the Vim editor.
  • add some powerful functions and provide more configurable details and convenience.
  • here is its license and privacy policy
  • the initial code is forked from philc/vimium:master on 2014.
  • customized after translating it from CoffeeScript into JavaScript and then TypeScript.

Other extensions supporting Vimium C:

Release Notes

1.90.0

  • key mappings: now a name of key can include _ ("underscore")
    • so a key can be named <v-hint_mode1> - much more readable
    • now all directives support $if
    • add $then:Key $else:Key for many commands, to run a sequence of commands
      • please search Req.FallbackOptions in source code to find which support them
    • runKey: add a simpler syntax: expect="envName1:keySeq1,env2:key2"
  • open URL: now most options can work together (orthorhombic)
    • change meaning of reuse=last-wnd-bg: create an active tab but not activate the last window
    • add replace:URLPattern to find (match) a tab by URL and replace it with a target URL
    • improve URL detection when open copied URL, and add copied=urls|any-urls to open a list of copied URLs
    • most commands to open URL now support options including keyword testUrl replace position sed window
    • createTab is now full featured and works just like an alias of openUrl (#344)
    • Vomnibar: decode file:/// URLs on Windows system
  • LinkHints: add lots of options to do whatever needed
    • improve in focus (#328), newtab (#340), downloading (#332) and video,audio (#323)
    • add .evenIf:enum typeFilter:enum textFilter:RegExp anyText:bool to allow/refuse elements
    • LinkHints.click: add an object option directOptions={} to iterate in matches
  • text substitution: add some actions and allow non-EN context keys for users to customize rules
  • some other improvements and bug fixes

Refer to RELEASE-NOTES.md.

Known Issues

There're some known issues on previous or latest versions of Chrome, and please read https://github.com/gdh1995/vimium-c/wiki/Known-issues-on-various-versions-of-Chrome for more information.

Building

If you want to compile this project manually, then you need a Node.js 13+ and npm. Please run:

npm install typescript
npm install pngjs # only needed for Chromium-based browsers
node scripts/tsc
# ./scripts/make.sh vimium_c-debug.zip

gulp local can also compile files in place (using configurable build options), while gulp dist compiles and minimizes files into dist/.

The options including MinCVer and BTypes in gulp.tsconfig.json are used to control supported target browsers and set a minimum browser version.

Donating / 捐赠

Vimium C is an open-source browser extension, and everyone can install and use it free of charge. If you indeed want to give its author ([email protected]) financial support, you may donate any small amount of money to him through Open Collective, PayPal, Alipay or WeChat. Thanks a lot!

Vimium C 是一款开源的浏览器扩展程序,任何人都可以安装使用它而无需支付任何费用。 如果您确实想要资助它的开发者([email protected]), 可以通过支付宝微信Open CollectivePayPal 无偿赠与他一小笔钱。谢谢您的支持!

A donation list is in / 捐赠列表详见: https://github.com/gdh1995/vimium-c/wiki/Donation-List .

gdh1995 的支付宝二维码 gdh1995 的微信赞赏码 PayPal QRCode of gdh1995

Thanks & Licenses

Vimium C: Copyright (c) Dahan Gong, Phil Crosby, Ilya Sukhar. See the MIT license for details.

The translation files in _locales/ belong to CC-BY-SA-4.0, except some of those English sentences which are the same as philc/vimium's are under Vimium's MIT license.

Declaration for Applicable Regions

The Vimium C and other extensions published by gdh1995 are available for all people in "all regions" of Microsoft Edge Add-ons, Chrome Web Store and some other markets. This behavior is only to make these extensions easier to use, but
DOES NOT EXPRESS OR IMPLIED the author (gdh1995) "agrees or has no objection to" that "Taiwan" can be parallel to "China", which was an inappropriate status quo in the stores' (developer) pages on 2021-06-03.

According to The Constitution of the People's Republic of China and international consensus, Taiwan is an inalienable part of the sacred territory of the People's Republic of China.


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
typescript (11,988
chrome-extension (551
webextension (105
edge-extension (34
firefox-webextension (21