/vimium-c

A keyboard shortcut browser extension for keyboard-based navigation and tab operations with an advanced omnibar

Primary LanguageTypeScriptMIT LicenseMIT

![Icon](icons/icon32.png) Vimium C - All by Keyboard

===========================================

Version MIT license GitHub stars Gitee star Current build status

Firefox users Firefox rating Chrome users Chrome rating Chrome rating count

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 >= 43, 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~42.

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

Usage Demo of 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 Chrome and Firefox 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.84.1

  • FindMode: better support for regexp queries, like matching \ra(?!nd) in abc and def
  • mapped long keys ending with :i always work in a plain insert mode
    • for example, map <c-j:i> editText run="auto,forward,line" will move caret down by a line, only in insert mode
    • not in any global insert mode of enterInsertMode
  • fix it could not enter VisualMode if FindMode had never been activated
  • LinkHints: a new option newtab=last-window to open links in the other window
  • a new command toggleStyle to insert/remove CSS styles to pages
  • a new command scrollSelect to switch selection in <select> boxes
  • editText: support a new action of "auto", to switch in extend and move according to selection type
  • enterInsertMode: support 2 new options of unhover and reset to clear old modes

1.84.0

  • LinkHints: better compatibility with Firefox popup blocker in "newtab" mode
  • now support the high contrast mode on Firefox and Edge (Chromium) (#191)
  • fix some bugs, including a regression of custom CSS and broken Tab during focusInput
  • substitution rules: extend its usages
    • support post-actions like decode/unescape/upper/lower/reverse
    • the syntax is s/query/replaced/i,decode,upper,reverse: repeatly append a , and an action
    • most related commands supports sedKey: character to filter pre-defined rules
    • now the prefix of a rule can include up to 6 any English letters, and the rule gets used if only sedKey is in it
  • focusInput: add option prefer: CSS selector to choose a desired input
  • Vomnibar: use Meta+N to select the N-th item, like Alfred
  • Vomnibar: add an option incognito=null/boolean/"reverse" (#195)
  • Marks: now allow some host pages to report scrolling position and jump to marks in their own ways (#193)
  • the UI of options page: use flat mode
  • build: record arguments to be able to reproduce the same package, in order to meet requirements of Firefox Add-ons

See more on 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, 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.

Donate / 捐赠

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 (gdh1995@qq.com) financial support, you may donate any small amount of money to him through Open Collective, PayPal or Alipay. Thanks a lot!

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

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

gdh1995 的支付宝二维码 PayPal QRCode of gdh1995

Thanks & Licenses

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

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' pages on 2019-11-16.

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.