Git Product home page Git Product logo

gdh1995 / vimium-c Goto Github PK

View Code? Open in Web Editor NEW
3.2K 27.0 253.0 21.3 MB

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

Home Page: https://chrome.google.com/webstore/detail/vimium-c/hfjbmagddngcpeloejdejnfgbamkjaeg

License: Other

CSS 1.14% HTML 3.30% TypeScript 95.56%
keyboard-shortcut chrome-extension webextension firefox-webextension keyboard-assistance edge-extension vimium

vimium-c's Introduction

Vimium C - All by Keyboard

Version Apache-2.0 license GitHub stars Gitee star

Firefox 63+ users rating Edge 79+ users rating Chrome 47+ users rating

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 contextual mapping, global shortcuts, command sequences, Chinese support 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 (Gong Dahan), and open-sourced under the Apache-2.0 license.

本项目主要由 gdh1995(宫大汉)开发并维护,且以 Apache-2.0 许可协议 开源。

It (the released version) supports the new Microsoft Edge, Google Chrome and other Chromium-based browsers whose core versions are >= 47, and has a perfect support for a recent Firefox (since version 63.0, desktop). It can even run on Microsoft 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、Google 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 .

Some old code of Vimium C was under the MIT license, and you may get it in https://github.com/gdh1995/vimium-c/tree/MIT-licensed-v1 .

Vimium C 的部分旧代码以 MIT 许可协议开源,可以前往 https://github.com/gdh1995/vimium-c/tree/MIT-licensed-v1 获得源码。

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

Keyboard Bindings

This section is modified from philc/vimium 's.

Modifier keys are specified as <c-x>, <m-x>, and <a-x> for Ctrl+x, Meta+x, and Alt+x respectively. For Shift+X and Ctrl+Shift+X, just type X and <c-s-x>. See the next section for how to customize these bindings.

Once you have Vimium C installed, you can see this list of key bindings at any time by typing ?.

Navigating the current page:

?       show the help dialog for a list of all available keys
h       scroll left
j       scroll down
k       scroll up
l       scroll right
gg      scroll to top of the page
G       scroll to bottom of the page
d       scroll down half a page
u       scroll up half a page
f       show hints for links and buttons to open in the current tab
F       show link hints and open a link in a new tab
r       reload
gs      view source
i       enter insert mode -- all commands will be ignored until you hit Esc to exit
yy      copy the current url to the clipboard
yf      copy a link url to the clipboard
gf      cycle forward to the next frame
gF      focus the main/top frame

Navigating to new pages:

o       open URL, bookmark, or history entry, on an English letter "o"
O       open URL, bookmark, history entry in a new tab, on an English letter "O"
b       open bookmark
B       open bookmark in a new tab

Using find:

/       enter find mode
          -- type your search query and hit enter to search, or Esc to cancel
n       cycle forward to the next find match
N       cycle backward to the previous find match

For advanced usage, see regular expressions on the wiki.

Navigating your history:

H       go back in history
L       go forward in history

Manipulating tabs:

J, gT   go one tab left
K, gt   go one tab right
g0      go to the first tab. Use `ng0` to go to n-th tab, on `g` and a number character of `0`
g$      go to the last tab
^       visit the previously-visited tab
t       create tab
yt      duplicate current tab
x       close current tab
X       restore closed tab (i.e. unwind the `x` command)
T       search through your open tabs
W       move current tab to new window
<a-p>   pin/unpin current tab

Using marks:

ma, mA  set local mark "a" (global mark "A")
`a, `A  jump to local mark "a" (global mark "A")
``      jump back to the position before the previous jump
          -- that is, before the previous gg, G, n, N, / or `a

Additional advanced browsing commands:

]], [[  follow the link labeled "next or ">" ("previous" or "<">)
          - helpful for browsing paginated sites
<a-f>   open multiple links in a new tab
gi      focus the first (or n-th) text input box on the page. Use <tab> to cycle through options.
gu      go up one level in the URL hierarchy
gU      go up to root of the URL hierarchy
ge      edit the current URL
gE      edit the current URL and open in a new tab
zH      scroll all the way left
zL      scroll all the way right
v       enter visual mode; use p/P to paste-and-go, use y to yank, use v/c/V to toggle visual/line/caret modes
V       enter visual line mode
yc      select a first word of a sentence and enter visual mode

Vimium C supports command repetition so, for example, hitting 5t will open 5 tabs in rapid succession. <esc> (or <c-[>) will clear any partial commands in the queue and will also exit insert and find modes.

There are some advanced commands which aren't documented here; refer to the help dialog (type ?) for a full list.

Custom Key Mappings

This section is modified from philc/vimium 's.

When you have just installed Vimium C, it will open a new tab to show its default key mappings, and you may also open Vimium C's options page and press ? (usually it's Shift+/) to show those mappings again.

You may remap or unmap any of the default key bindings in the "Custom key mappings" on the options page.

Enter one of the following key mapping commands per line:

  • map <key> command: Maps a key to a Vimium C command. Overrides web pages' default behavior (if any).
  • mapKey <key> <another_key>: Let Vimium C treat key as another key. Can not affect your browser or web pages.
  • unmap <key>: Unmaps a key and restores the default behavior (if any).
  • unmapAll: Unmaps all bindings. This is useful if you want to completely wipe Vimium C's default commands and start from scratch with your own setup.

Examples:

  • map r reload maps the r key to reloading the page.
  • map <c-d> scrollPageDown maps Ctrl+D to scrolling the page down.
  • unmap r removes any mapping for the r key.
  • unmap <c-d> removes any mapping for Ctrl+D and restores web page or browser's default behavior.
  • unmap g0 removes any mapping for a g key and a next 0 key.

Available Vimium C commands can be found via the "Show available commands" link or ? key on the options page. The command name appears to the right of the description in parenthesis.

You can add comments to key mappings by starting a line with " or #, or a space character and a next # in a line.

The following special keys are available for mapping:

  • <c-*>, <a-*>, <s-*>, <m-*> for Ctrl, Alt, Shift, and Meta (Command on macOS) respectively with any key. Replace * with the key name of choice.
  • <left>, <right>, <up>, <down> for the arrow keys.
  • <f1> through <f12> for the function keys.
  • <space> for the space key.
  • <tab>, <enter>, <delete>, <backspace>, <insert>, <home> and <end> for non-printable keys

Here're some advanced usages which are different with philc/vimium:

  • Shift are automatically detected, so, & corresponds to Shift+7 on an English QWERTY keyboard.
    • However, if a single key is longer than 1 character, please wrap it with <+> and insert a s-
    • If you want to trigger a key when multiple modifier keys are pressed, sort a/c/m/s- prefixes by letter order
    • For example, these keys are valid names: <s-left>, <c-j>, <a-s-k>, <a-#> and <a-?>
  • mapKey <key:o> <another_key> makes key work as another key only in a special mode named Vomnibar
  • map <key:i> command makes key trigger the command in insert mode only, but not the default normal mode
  • since v1.99.98, map! <single_key> maps key in both normal mode and insert mode, if only it's not a long sequence
    • For example, map! jj is invalid, but map! <home> and map! <c-j> are suitable
  • unmap can only unmap a manually-mapped key or a default key, so a second unmap <key> may result in an error
    • You may use unmap! when you're not sure whether a key has been mapped before
  • number keys (0-9 and -) are mapped to "count prefix" of commands by default, so won't be passed to web pages.
    • And then, even after unmapAll, they will be automatically added back on a next map
    • you may write unmap 0 to unmap it explicitly

Project Introduction

Vimium C:

  • 中文介绍 (description in Chinese)
  • a web extension for Firefox, Microsoft Edge and Google 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 Apache-2.0 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

Refer to RELEASE-NOTES.md.

Known Issues

There're some known issues on previous or latest versions of Chromium-based browsers, 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 partial 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) Gong Dahan. See the Apache-2.0 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.

vimium-c's People

Contributors

ascodeasice avatar bumbadawg avatar dependabot[bot] avatar fent avatar forestmonster avatar gdh1995 avatar h3ndry avatar kant avatar kovalevartem avatar nameldk avatar pvinis avatar t-winkle avatar yang-33 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vimium-c's Issues

Map keys on passthrough and mapping backspace key

Hi,

I was wondering if two things were possible.

The first think is to map the keys on passthrough, is this possible? For example if I want G to send a B to the underlying website.

The second thing is in the mappings, is it possible to map non-ascii keys like the backspace key? I would like to map the backspace key to go back a page for example.

Thanks

Kabeer

multiple modifier keys not working?

map  moveTabLeft
map  moveTabRight

These commands don't seem to work here (they work for me in regular vimium). Is there a better way to define them that will work?

"searchAs" Not Always Work?

Thanks for your excellent extension 💯 .

But I found "searchAs" not always work, Many times it just tell me "no search engine found!"(I use 360极速浏览器 8.7.0.306 内核50.0.2661.102). BTW I am use the default search engine settings(Baidu).

I'm noticed that vimium plus supports session function. Is it mean I can store opened tabs?If so, how can I use it? I cant find it in settings.

Just a suggestion, Can you make vimium plus to view Tab history(as we right click the back/forward button on browser UI) in vomnibar? It is very useful when we forget what we have opened with one tab, not like the whole history with all tabs what have been opened.

Some features request

Hey I just want to give some suggestion for this project since I am using this extension quite a lot:

  • Refactor the code base. Personally I want to fork and start contributing, unfortunately I am a bit lost when I read the current code. Consider turning off the TSLint, adding in extra EsLint one by one. The final goal should be to have 100% compliance with linters suggestions

  • Adding search result sorting order. For example for me when i press 'O' to search and open a new tab, I would like to be able to customize so that my bookmarks are ordered first on the list, then the search result from the search engine should follow after

  • Add testing. Another way of enabling other contributors is having tests to guide/assure them on the correctness of the implementation. We can start out small but given that this is TypeScript, testing should be rather intuitive.

Let me know your thoughts.

1.59.4 F 之后不能打开网页

  • chrome 58.0.3029.110 (64-bit)

  • Vimium 1.59.4

    控制台报错:
    Uncaught ReferenceError: HandlerResult is not defined
    at Object.onKeydown (link_hints.ts:606)
    at Object.bubbleEvent (utils.ts:47)
    at onKeydown (frontend.ts:87)

    link_hints.ts:1089 Uncaught ReferenceError: EditableType is not defined
    at Object.activator (link_hints.ts:1089)
    at Object.activateLink (link_hints.ts:626)
    at Object.onKeydown (link_hints.ts:593)
    at Object.bubbleEvent (utils.ts:47)
    at onKeydown (frontend.ts:87)

make new tab empty

I love this plugin! But I need to remove chrome-extension://hfjbmagddngcpeloejdejnfgbamkjaeg/pages/blank.html from the address bar for every new tab. Can I have really empty new tab?

Can not use the "closeTabsOnRight"

"map <a-c> closeTabsOnRight"
When I set this key mapping, it will become the 'previousTab'.
Chrome version 56.0.2924.87 (64-bit)
Vimium++ version 1.58

map按键无效?

map 1 previousTab map 2 nextTab map 3 removeTab map c duplicateTab map e scrollPageDown map q scrollPageUp map 4 reload map r restoreTab map d goForward map a goBack map z goPrevious map x goNext map h searchAs keyword="3b"
自定义搜索:
a|3b: http://www.3bsou.com/s?keyword=$s&ie=utf-8&left=baidu&right=google&opt=web&num=20&xz=2

感谢作者@gdh1995 在vimium的issue下的回复,问题直接提到这里好了。我下载了vimium-plus然后如上定义了习惯的按键并且save changes,但是发现都无效呢?
像eq有效应该是跟默认的等同所以仍然有效。自己改过的都不行。 比如按1、2、3都没反应,按x仍然是关闭当前tab。
最后自定义的h搜索也还是没用(按o键输入搜索引擎别名是可以调用搜索的)。。

求问是我哪里搞错了 0.0
chrome版本 59.0.3071.115(正式版本) (64 位)

How to re-map <Esc>ape key sequence from Visual mode back to Normal mode?

Issue:
Tried and failed to re-map Escape sequence FROM Visual Mode TO Normal Mode.

Where:
chrome-extension://hfjbmagddngcpeloejdejnfgbamkjaeg/pages/options.html#!newTabUrl

What FAILed:
map jk < esc> [padded space inserted for preview mode only]
map jk < Esc>
map jk isEscape_

PASS R
FAIL map jk Esc
https://github.com/gdh1995/vimium-c/blob/d2ba7c9b96756491b30694961df871c9b555a8b5/content/mode_visual.ts
Switch back to plain find mode by the "\R" escape sequence.

Where Else?
https://github.com/gdh1995/vimium-c/search?q=%3cesc%3e&unscoped_q=%3cesc%3e
https://github.com/gdh1995/vimium-c/search?q=escape+sequence&unscoped_q=escape+sequence

https://github.com/gdh1995/vimium-c/blob/af9d99344eed0147be8859a21f41162f678843b0/pages/options.html
Switch back to plain find mode by the "\R" escape sequence.
https://github.com/gdh1995/vimium-c/blob/d2ba7c9b96756491b30694961df871c9b555a8b5/content/mode_visual.ts
if (VKeyboard.isEscape_(event)) {
a.currentCount_ || a.currentSeconds_ ? a.resetKeys_() : a.deactivate_(1);
https://github.com/gdh1995/vimium-c/blob/98d8ef80ae2fbe62be923887d08f95d3e7c5f381/types/vimium_c.d.ts
declare const enum VKeyCodes {
None = 0,
backspace = 8, tab = 9, enter = 13, shiftKey = 16, ctrlKey = 17, altKey = 18, esc = 27,

Greatly appreciated.

From Dark Magician

It took a little while to figure out, but your explanations of the vimium://*** URLs were helpful, and the workaround to duplicate the active tab as a background tab works as expected. Thank you.

Yes, I mean multiple keywords on the Vomnibar. Is this something technically possible, i.e., not limited by Chrome's API? If I understand correctly, vimium://parse is the relevant command, but it currently returns only a single URL and must be redesigned to return multiple URLs to support multiple keywords on the Vomnibar. Is this correct? Is it a feature which may be implemented?

I have a new question: Can a keyword function as a custom search engine and as the root domain of the custom search engine when there is no text after the keyword? For example, one of my custom search engines is mal: https://myanimelist.net/search/all?q=%s

As expected, if I type mal Spice and Wolf, Vimium C will search myanimelist.netfor Spice and Wolf

But if I type mal followed by no text, Vimium C will take me to https://myanimelist.net/search/all?q=

However, I want Vimium C to take me to https://myanimelist.net/ instead

I realize I can create a second keyword, ;mal, but I wonder if a keyword can function as a custom search engine and as the root domain of the custom search engine when no text follows the keyword for consistency and simplicity.

I have a few other questions:

  1. Is there a way to reload all tabs, not just the active tab?

  2. Is custom CSS for Vimium C different from Vimium? The reason I ask is because the custom dark themeI found online works for Vimium, but not Vimium C. I do not see a Vimium C wiki entry for custom CSS.

  3. How can I find and implement a search engine's search suggestions?

I have couple of more suggestions:

  1. Hints to select text. This feature would be especially useful: It is easy to lose track of the indicator, and sometimes the indicator disappears. Hints to select text would make visual mode much easier to use.

  2. Helpful hints.

Hints Get Cut Off

For some reason, the hints get cut out when highlighting. I'm using the newest version of vimium on ungoogled-chromium 70. Here's an example (look closely at "Privacy and Cookie Policy" and "Subscribe with RSS").

Tab switching using `T` often doesn't work

I have no idea how to debug this and I haven't found a consistent pattern yet.

The vomnibar always opens and filters properly, but when I select a tab, it often doesn't take me there. It may have something to do with which page I want to switch from or to, but I'm not sure yet.

What I have noticed is that the other tab still appears to be loaded:
If I re-open the browser and switch to a youtube tab, it the tab and video will load and start to play, but the selected tab remains the one I was on before.

This is really irritating, partly because it doesn't make any sense and partly because the fuzzy tab selection is one of the main use-cases for me.

NOTE: I cannot reproduce this with Vimium, so I guess it was introduced in here, but that's all I know :/

Clickable elements in Canvas LMS's speedgrader

As said in philc/vimium#3307 (comment), @smk291 you found Vimium C can not hint most elements on a special page, so I open this issue.

Basically, I think it's because the page has a big '<iframe>' and then wraps most content in it, while Vimium C has not implemented the feature of hinting links across all frames in a tab.

To find the real reason, could you provide the exact URL of the web page you mentioned?

input for custom search engines without query strings should not be URL encoded

how to reproduce:

  1. add this to list of custom search engines in your vimium c options: ghu: https://github.com/%s GitHub @user/org
  2. go to https://github.com/gdh1995/vimium-c
  3. type ghu gdh1995/vimium-c in the vomnibar and press return

what should happen: go to
https://github.com/gdh1995/vimium-c (input that replaces %s is not URL encoded)
not
https://github.com/gdh1995 %2F vimium-c (URL encoded)

how to fix:
if the custom search engine url has the %s after a the query string of the url, it should be url encoded, if it does not have a query string/s it should not.
for example:
if the custom search engine url was:
https://github.com/user?u=%s %s should be url encoded
but for custom search engine urls that don't have a qwery string, like:
https://github.com/%s %s should not be url encoded.

vimium c version I'm using: 1.74

after selecting iframe, vimium c creates listeners only for the contents of the iframe

I wrote a comment about this on the extension's page on the chrome store. To repeat what I wrote there:

To replicate:

  1. Go to a page that uses iframes
  2. Press "f"
  3. Type the key combination, whose font is reddish, that focuses on the iframe.
  4. Press "f" again.
  5. The only links/buttons that vimium c recognizes and creates listeners for are now those in the iframe. The rest of the page is ignored.

I just discovered that merely clicking inside the iframe has the same effect.

使用F点击链接未在后台打开

默认状态下vimium的f和F逻辑是"在当前标签页打开链接"和"新建标签并在后台打开链接",但在使用vimium++的时候感觉存在bug,使用F不是新建标签并在后台打开,而是新建标签后跳转到新建的标签。

重新绑定LinkHints.activateModeToOpenInNewTab后未解决问题,感觉是函数有错误。

How to get the log when "Please see logs of background page for more details" occurs during customizing keymap

When I change the extension from Vimium and customize the keymap to Vimium-style, some errors raises with the warning "Please see logs of background page for more details". How can I get the logs to check the errors? Is there any suitable configuration for origin Vimium users? I try to import the configuration exported from Vimium but it doesn't work. And I quiet wonder the reason for changing the default keymap from Vimium.

add langmap setting

can you guy make this setting possible like this extension cVim I want to use this for my own language keyboard also
Thanks

Crash when set `New tab URL option`

Hi. in brave browser when i want to set New tab URL option to:
chrome://newtab/
And restart the brave, it try to open unlimited tabs and crash and i should manually force close it.

Os: Arch linux
Brave: Version 0.62.51 Chromium: 73.0.3683.103 (Official Build) unknown (64-bit)

cannot search on firefox

Issue

Search using / shortcut does not accept some characters

Vimium C version

Version 1.75.6.

Reproduce

  • Open up some website on firefox.
  • Press /
  • Type "google" to search for instances of google within a page

Expected result

  • Should behave similar to search

Actual result

  • Some characters such as g, f, h, j are not accepted as valid input
  • Some characters such as a or s can be input

Firefox: pressing 't' does not open new tab

Version tested

  • 1.75.7 Firefox Nightly
  • 1.75.7 Vimium-c Chrome stable

What did you do

  • Open browser
  • Open google.com
  • Press 't' to open new tab

Expected result

  • Browser open a new tab

Actual result

  • Firefox does not open new tab
  • Chrome does open a new tab

Note

  • Every other features are still working normally on firefox (o, b, j, k, f, ...)

  • CMD + t still work as hotkey to open new tab

[Feature Request] Filtered Hints

I read from Vimium's Wiki about Filtered Hints:

On the options page, you can choose to use filtered hints instead of alphabet hints. With filtered hints, the labels beside each clickable thing consist of digits. However, instead of typing those digits, you can also type the link text itself. Vimium excludes links which do not match the text you have typed. And when just one link is left, it is activated.

Somehow I like the idea of knowing what to type to navigate to a link in advance. I wonder if this is implemented or can be put onto the TODO list?

open current tab in new window

Just discovered your amazing version of vimium-c, well enhanced from the other! Great job!

Am wondering if there is a way to set a shortcut to open a new window with a current tab?

Any way to do that?

Cheers

TODO list

v1.74 / v1.75

Long term tasks

  • ? why initing might stop since exclusions.js (has not been reproduced recently)

  • ? handle mapKey * <esc>

  • ? support -webkit-user-modify: write

  • use some cache during VHints.traverse

  • auto find text and make hints (like <v> in VimFx) ( #3 )

  • use chrome.storage to store local settings sync settings

  • implement filtered hints ( #23 )

  • translate into Chinese

    • translate options.html
    • translate help_dialog.html
  • write wiki...

  • rework FindMode's exit logic

  • Firefox / Edge

    • basic running
    • supports no Shadow DOM
    • moz-* schemas
    • tabs.query does not support moz-extension://$id/pages/options.html
    • no browser.windows
    • clipboard problem
    • wrap around in FindMode
  • ? merge from mrmr1995: Render for Hints (given up)

  • visual viewport

    • Hints.getElementsInViewPort: need visualViewport.height
    • Scroller: use visualViewport.height / .width (impossible on 2019/10/04)
    • DomUtils: prepareCrop, getViewBox, ensureInView, setBoundary

From Dark Magician

  • multiple keywords on Vomnibar and vimium://parse
  • search engine's special URL for empty queries
  • advanced usages of custom CSS
  • custom suggestion
  • Hint to cursor
  • Hint of page text (like VimFx)
  • helpful hints in help dialog
  • 99 times and the confirm dialog
    • reloadTab
    • if the dialog disabled, fallback into running command once

添加多国语言支持

希望 Vimium C Help 页面支持多国语言。

记不住快捷键,经常需要查看帮助,希望可以添加中文帮助提示。

谢谢!

[Feature request] Display hints to enter visual/caret mode

I really like Chrome and Vimium. However right now I am using Firefox due to Vimfx. One of the reasons is that I use visual mode quite frequently and I find the implementation of caret/visual mode much easier in vimfx than in vimium (also now available in surfingkeys for chrome).

By hitting v, Vimfx first displays hints just like when you hit f, which allows to you go right away to the sentence, box, or sometimes word that you want to highlight in visual mode, which I find it extremely faster and convenient over searching for a keyword first and then enter visual mode in vimium.

It would be great if this feature could implemented, of course if you like the idea. Thanks in advance.

can not map only number keys?

It's ok to map special characters like !,@,#, or mixed group like q2,q1, but I can't figure out how to map only one number key like 1,2,
Could anybody help?
Thanks!

Error Loading Unpacked

Hi, @gdh1995 . Howdy? I couldn't load the downloaded Vimium++ from the browser see error below. Could you update your plugin in Web Store. Thanks!
vimium

Vomni bar font customization

Hey I really enjoy using this project.

Please consider provide some out-of-the-box option for standard font configuration as non-chinese user will not need to use the Chinese dedicated fonts.

(I know i can override it with CSS, but having an one click button would be nice)

Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.