Git Product home page Git Product logo

gdh1995 / vimium-c Goto Github PK

View Code? Open in Web Editor NEW
3.3K 28.0 251.0 20.16 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.11% HTML 3.28% TypeScript 95.61%
keyboard-shortcut chrome-extension webextension firefox-webextension keyboard-assistance edge-extension vimium

vimium-c's Issues

添加多国语言支持

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

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

谢谢!

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.

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

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?

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 位)

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

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

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

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

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

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

"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.

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

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.

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

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 :/

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)

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.

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!

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

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?

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.

[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?

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.

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?

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)

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

[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.

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").

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

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.

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.