ReadMe: https://github.com/gdh1995/vimium-c/#readme .
说明文档: https://github.com/gdh1995/vimium-c/blob/master/README_zh.md .
(the current published version on Firefox Add-ons, Microsoft Edge Add-ons and Chrome Web Store)
- FindMode: better support for regexp queries, like matching
\ra(?!nd)
inabc 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
- for example,
- 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 inextend
andmove
according to selection typeenterInsertMode
: support 2 new options ofunhover
andreset
to clear old modes
- 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
- support post-actions like
focusInput
: add optionprefer: 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
- better simulating of mouse events: wait for 1~2 microticks, so that work better with modern frameworks
- fix some bugs about
LinkHints
and the Display page focusInput
: follow "Detect whether links are completely covered or not"- support an option
reachable: boolean
to override this behavior
- support an option
goNext
: now find links in all same-origin framesgoUp
: support an optionsed
to use substitution rules with prefix=g
- Block list of words: a small change to how to detect comments
- settings: show advanced options and command items by default
- export settings: now support non-English characters in block list of words
- createTab: in an incognito window, now don't open extension pages by default, unless
evenIncognito
- Scroller: make
keepHover
enabled by default; also use a cheaper way to prevent hover effects autoOpen
/openUrl
: add an optiontestUrl
, which is default tofalse
if the optionkeyword
is not empty- LinkHints: use
[aria-label]
and supporthtml[data-vimium-hints=ordinal]
- Vomnibar: fix bugs when preferring a web page as the Vomnibar page; fix no favicons on Firefox
- Vomnibar: add an option
engines: enum
to filter out any engines - scroller: continue scrolling when irrelevant keys get released
- fix some other bugs
- LinkHints: no hint links on an iframe if it's wholly covered
- FindMode: fix an edge case Ctrl+J may hang at a place
- Vomnibar: fix a bug the
currentWindow
option may affect a nextactivateTabSelection
command - settings: fix a crash during auto-recovering when
localStorage
got cleared - copy to clipboard: avoid spaces occur in URLs
- export settings: encode the block list of words using base64
- Firefox on Android: highly experimental support
- fix some other bugs
- i18n: support French when showing tips
- releases on the store: increase the required minimum Chrome version to 43
- Vomnibar: fix some bugs when a query starts with
vimium://cd
- options page: if there're errors in custom key mappings, show them directly
mapkey
: support$if={os: "win"|"mac"|"linux", browser: int}
, just likemap
- text substitution: add a prefix of
i
and two suffixes ofr
andd
i
is forvimium://show image
to parse high-resolution image URLsr
means "reverse", and treats a first matched group as the resultd
means "decode URL", and it will try to decode result URLs
- LinkHints: show indigenized upper-case characters (experimentally)
- Vomnibar: now expose visit time for customized Vomnibar page (#154)
autoOpen
: add an option ofcopy
(#159)- fix an error on iframes before Chrome 36 and when
#enable-javascript-harmony
is on
LinkHints
: Filtered hints: use Alt+N to filter by link text (#122)LinkHints
: addscroll="force"
to focus and then scroll some special boxes (#147)Scroller
: add an option ofpassPointer
to pass pointer eventsVomnibar
: add an option oficase
(#131 (comment))closeOtherTabs
: addfilter=""/url/url+hash/url+title
(#148)- Clipboard text Substitution: now accept empty destination strings
- better support for the flag
#freeze-user-agent
on Chrome 81
Vomnibar
: roll back and prefer visited tabs to newly-opened ones (#60 (comment))- support
noTabs
or":H"
to avoid searching opened tabs in omni mode - add
autoSelect
and enable it by default in history/bookmark/tabs mode (#144) - add
searchInput=false
to prevent default searching
- support
mapKey
: support a new mode ID ofe
(NExt) and use it when a prefix sequence of count/key has been typed.LinkHints
: supportautoUnhover
to unhover a link node once it's clicked- on Firefox: press Esc to auto unhover a link node after opening it in a new tab
focusInput
: supportact="last"|"last-visible"
(#127 (comment))goNext
: prefer completely matched text (e.g.">"
is preferred to">|"
)goBack
: add an option oflocal
to always usehistory.go
, instead of async going- popup page: if an extension wants to run Vimium C but not is allowed, show a button to auto allow it
- some bug fixes
- fix that - or software-produced Escape can not be recognized (#129)
- Privacy Policy: update to allow short-term and in-memory cache for Vomnibar suggestions
- Vomnibar: also match queries in all tabs when in omni mode
- Vomnibar: fix some edge cases and improve performance when matching queries
- Vomnibar: show indexes on Alt and quickly access items with Alt + Number
- on macOs, use Ctrl + Alt + Number (
<a-c-N>
) instead - keys can be re-mapped: see #135 (comment)
- on macOs, use Ctrl + Alt + Number (
- LinkHints: Firefox: improve reachability detection for scrollable areas
- LinkHints: Filtered Hints: make hint keys follow page numbers
- Scroller: use a lightweight method to deactivate hover effects globally if smooth scrolling is enabled (#133)
goNext
: support aria-labelswitchFocus
: add 2 options ofselect
andflash
to work likefocusInput
(#127)- hooked
Function::toString
: not convert those whose body includes__VimiumC_
to()=>1
any more (influence #130) - Chrome release: mark itself offline-enabled
- macOS: LinkHints now works well even if a page zooms in/out many times
- LinkHints: fix a regression some links were not clickable in v1.80.2 (philc/vimium#3501)
- Scroller: if needed, prevent annoying scroll restoration when a page is still loading
- LinkHints: wait for enter: now can use Backspace to exit
copyWindowInfo
: supportjoin="json"
LinkHints
now detects whether links are completely covered or not, and an option can disable this feature- macOS: fix broken LinkHints when a page is zoomed in (#119)
- fix a regression some keys were not excluded successfully (#115)
- Chrome: fix a regression the hook for click listeners became unsafe in v1.80.1
- fix some bugs when handling
vimium://***
URLs (#113) - add a new command of
editText
(#114) - add an option to stop to show notifications on updates (#116)
- support pre-mode "
mapKey
" directive:mapKey <`:o> <f2>
- Vomnibar: always parse
vimium://
URLs, includingvimium://paste [...sed-rules]
- add
vimium://cd <level> [URL]
, and "level" can be....
or/...
- add
sed="s/_/_/g\nRule2..."
option to those commands which uses Clipboard - Chrome 55+: now recognize most elements with click listeners, even under Shadow DOM trees
enterInsertMode
drops support forcode
andstat
options, and turns to thekey
optiongoToRoot
: if repeatsN
times, then only selectN-1
section parts of URL path- Edge: fix support of
<c-[>
- some bug fixes
- LinkHints: Firefox: fix broken Filtered Hints mode (#108)
- LinkHints: change some behavior details
- LinkHints: click mode: check
[aria-hidden]
on SVG elements (#98) - LinkHints: click mode: support plain
Element
nodes - LinkHints: click mode: add
newtab="window"
to open URLs on a new window - LinkHints: hover mode: unhover on
<esc>
- add an advanced option:
Substitution for clipboard text
to replace text before copying and pasting - URL conversion: now auto replace
vimium://paste
with real text content in system clipboard- Firefox: only for commands like
openUrl
; not on Vomnibar because of a bug
- Firefox: only for commands like
copyWindowInfo
: add type=tab to copy info of N tabsgoNext
: support id/class selectorsenterInsertMode
: supportkey: string
to declare a (mapped) key as the one to exit- Vomnibar: dark button: fix it will be overridden when "Auto switch between light and dark mode" is on
- FindMode: apply a new appearance
- fix broken
ignoringKeyboardLayout
in v1.79.2 - LinkHints: filtered hints: fix a crash
- LinkHints: filtered hints: type Space 3 times to activate a current hint
- clickable targets: add detection for
mousedown
anddblclick
listeners - clickable targets: detect SVG nodes with
[role=button]
- Firefox: fix IME compatibility issues in find mode
- Chrome: fix bugs and IME issues in find mode on old versions of Chrome
- add a new option "
mapModifier
" to generate keys like<s-modifier>
- fix some bugs (including some on Edge)
LinkHints
: merge logic from Vimium and add new options- add "Filtered Hints" mode
- support filtering by some common non-English letters
- include a fix for philc/vimium#3103
- use a new algorithm to assign letters in "Alphabet Hints" mode
- support and simulate Vivaldi: add boolean options
noCtrlPlusShift
andswapCtrlAndShift
- add
newtab="force"
to skip click and force openUrlInNewTab - now support
dblclick
andbutton="right"
to double click / click the right button
- add "Filtered Hints" mode
- always hook in-page access keys
- completely avoid negative influence on debugging experience
- the option
hook access keys
which was added in v1.78 is not needed any more
toggleSwitchTemp
: apply on all frames of a tabcreateTab
: ifurl: string
is specified, supportshost_mask: string
- display image: support Ctrl+C to copy image data on Chrome 76+
- open copied URL: auto convert
0.0.0.0
to127.0.0.1
- some other bug fixes and enhancements
- Firefox: fix
focusInput
can not select begin/end of text FindMode
: try to scroll highlighted text into viewVomnibar
: show better favIcons for URLs from search engines- Firefox: a much more efficient way to detect elements with click listeners
- also fix detection on CSP-protected pages
vimium://show
: notify browser not to cache images from incognito tabs- add an option for never writing into caches
- hook access keys: avoid part of negative influence on debugging experience
- fix some other bugs
- Vomnibar: all of its shortcuts, including
<esc>
, now supportmapKey
- now Normal Mode, VisualMode and Vomnibar supports full-featured mapKey
- LinkHints and Marks support mappings from single characters to single characters
- this is enabled by default for
LinkHints.*
, but not forMarks.*
- this is enabled by default for
- others support mappings to Esc (
<esc>
and<c-[>
)
- fix some bugs
- Edge (Chromium): release its first version
- fix that
LinkHints
may focus wrong iframes - fix some other bugs
- Chrome: add a feature to hook in-page "access keys" and enable it by default
- Firefox: support 63+ and more conditions
- VHints: Tab: now only switch visibility in limited ranges
- add
zoomIn
andzoomOut
commands, and use a huge count like1111
to reset zoom (#83, philc#2978) - fix some old bugs
- LinkHints: fix a regression since v1.78.0 that Vimium C might fail in clicking targets inside shadow-DOM trees
- image filename extension: add support for
.apng
exitOnClick
option: fix a bug so that Vomnibar won't exit on simulated mouse events from page scripts
- LinkHints:
touch
mode: now disabled by default; usetouch=true
ortouch="auto"
to enable it - Scroller: support
visualViewport
when computing view size - Scroller: a try to support
scroll-snap-type
on Chrome goNext
: add "上一封" / "下一封" (Chinese words) to the default patterns- options page:
drag-and-drop
exclusion rules to reorder them - fix some bugs
- Firefox: fix broken
LinkHints
- its UI uses Simplified Chinese (简体中文) for all
zh-*
language regions - the default value of
ignore keyboard layout
option rolls back tofalse
again - the
passKeys
will only exclude key strokes when the "current key" sequence is empty closeTabsOnRight
now closes all tabs on the right, just like what Vimium does (so doescloseTabsOnLeft
)LinkHints
now uses a single F2 to re-find new page nodes withonclick
event listenersLinkHints.activateModeToCopyLinkText
: add an optionjoin:string/boolean
to join selected text piecesLinkHints
: better support for "weibo.com" and pages using Material DesignLinkHints
: better support for pinch zooming on laptopsLinkHints.activate button="right"
: now simulateauxclick
events- add a command
copyWindowInfo
to copy title and URL info of all tabs - Vomnibar and Help Dialog now support an option
exitOnClick
- Firefox: when browser data is cleared, Vimium C's local data is erased, too, so auto recover those data in time
- Chrome: fix broken
importing settings
on v1.77.1 LinkHints.activateModeToCopyLinkUrl
: fix not finding those in shadow DOM trees- fix some other small bugs
1.77.3:
- 1.77.3: only for Firefox; fix that it could not open "about:newtab"
- 1.77.2: only for Firefox; avoid some error logs in the console of background process
- not manage browser NewTab any more in released versions (#53, #51, #42, #28, #14)
ignoreKeyboardLayout
is enabled by default, to support most keyboard layouts by default- the PRIVACY POLICY has been updated
- translated into Chinese
- some other bug fixes
1.76.8:
- fix Vomnibar might lose focus on YouTube and GMail
- history completer: fix some old items are skipped in prefix matching mode
- Commands: add option
$if={"sys":"win","browser":1}/...
to filter mappings"sys"
can be"win"
,"mac"
or"linux"
"browser"
can be1
(Chrome) |2
(Firefox) |4
(EdgeHTML)
- now most commands support shortcuts well
- "
dark
" invomnibarOptions
now overrides the status ofautoDarkMode
- some other bug fixes
1.76.6:
- fix a bug Escape can not work when ignoring keyboard layout
- fix a regression of v1.76.0 that in LinkHints mode
<c-a>
was not treated asa
- Firefox: FindMode now wraps around, like the behavior of Chrome
- FindMode history now limits query words as one line and not more than 99 characters on saving by Enter
- some other bug fixes
1.76.5:
- fix a bug in the popup page (#64)
- extension allow list: allow Vimium C's helpers by default
1.76.4:
- fix that Alt+Shift+F was not translated into <a-s-f> when CapsLock is on
- Now the feature of overriding browser newtab settings is deprecated
- add an option to ignore keyboard layout (fix #39 completely)
- Most of its logic is the same as philc/vimium:lib/keyboard_utils.coffee:21
- add an option to ignore CapsLock status, which is useful on macOS if using CapsLock to switch IMEs
- most backend commands are allowed for user-customized shortcuts (#55)
removeTab
: add an option "highlighted" to remove those tabs (#58)- LinkHints: auto enable modal UI when needed (<a-f2> to toggle it)
- Vomnibar: add some text-handling shortcuts on Firefox (#59)
- Vomnibar: disable tab tree mode by default, unless there's an option "
tree=true
" (#60) - fix some other edge cases
1.76.3:
- Chrome: fix that Vomnibar can not show favicons
1.76.2:
- fix a regression "Custom CSS" could not work on Vomnibar (#57)
- add a new feature to support user-customized shortcuts (#55 (comment))
- add 4 shortcuts, and 2 items are to go in a tab's history list, and the other 2 are for user to customize
- support
vimium://status toggle ["^" ...hooked-keys]
to switch between "enabled" mode and "exclusion-matched" mode- for example,
map <a-s-v> openUrl url="vimium://status\u0020toggle\u0020^\u0020<a-s-v>"
will make<a-s-v>
a shortcut to enable Vimium C or disable Vimium C (almost) completely - if you have configured global shortcuts, then
shortcut userCustomized1 command="openUrl" url="vimium://status\u0020toggle\u0020^\u0020<a-s-v>"
will make the shortcut a convenient switch button of Vimium C's working status
- for example,
goBack
now tries its best to simulate the feature of "duplicate-and-go-back" on older versions of Chrome (before 72)- the behavior of
removeTab goto=previous
is changed, and the new logic is simpler and easier to use - now mapped
<esc>
and<escape>
keys work the same as native<esc>
keys - LinkHints: now
<c-f2>
will hint all elements with non-null "onclick" properties - Firefox: now can show a confirmation dialog if a command count is too large
- fix a bug of parsing failures if a line in key mapping rules ends with the \ character
1.76.1 for Firefox:
- fix broken FindMode
1.76:
- add a new command
closeDownloadBar
to close Chrome's download bar at the bottom mapKey
: now apply mappings for lower-case characters to every keys including it- for example, if
mapKey f g
, then<c-f>
will be translated into<c-g>
- also work in LinkHints mode (#39 (comment)),
unless there's an option of
mapKey=false
- so if your IME is not English, you may map alphabets to the English versions (in Vimium C) using a list of
mapKey
- for example, if
- LinkHints: now always search shadow DOMs and the related boolean option is useless and removed
- LinkHints: if press Ctrl in "text"/"url" modes, then it will copy multiple lines to the clipboard
- Vomnibar supports a new mode "
bomni
" in which bookmarks' priority is higher (#50) - Vomnibar now shows a "tab tree" when in "current window tabs" mode
- now it can sync much longer (bigger than 8KB) key mapping list and search engines through the browser syncing service
- all the synced data is still limited under 100KB
- in case you clean all browsing data, now it can recover most settings (at most 5MB) even if syncing is off
- now LinkHints and Vomnibar are faster
- partly work around a bug of Chrome 70+, which affects command
toggleCS
- if the confirmation dialog is forbidden by mistake, then now a too large count will be treated as 1
- the old behavior was to do nothing, which is somehow inconvenient
- the dialog works again if you reload this extension, or just restart Chrome
- Firefox: fix a potential vulnerability in v1.75.7 and v1.75.8
- update some notes in PRIVACY POLICY about which permissions may be removed safely
1.75.8 (only released on Firefox):
- LinkHints: smarter hinting and now
<video>
and<audio>
are clickable - on Google Docs, now can press
<esc>
for a while to move focus from document content to the window removeTab
command now supports an option ofgoto=""/left/right/previous
- click listener watcher: fix a vulnerability in v1.75.7
- the options page won't be dark if the option "auto-dark-mode" is unchecked
- Firefox: the options page now shows a tip if the value of New tab URL has a mistake
1.75.7:
- LinkHints: add some new rules to exclude useless hints for container nodes
- much smarter on Google search result pages
- a global dark mode for Chrome 76+ and Firefox 67+ is now enabled by default
- include new styles for hint markers, HUD, options page and the help dialog
- Scroller: fix it might scroll too far in some cases (for example, a long page is loading) (#45)
- Scroller: fix a bug of losing current active elements after switching scrolling directions
- Firefox: fix broken FindMode (#48) and some other issues on pages with multiple iframes
- Firefox: fix LinkHints may cause scrollbars to show in some cases
- Firefox: now both auto-dark-mode and auto-reduce-motion can response to system setting changes
- goNext: stricter: not match long text
1.75.6:
- fix that Vomnibar can not acquire focus on the first activation on a new page since Chrome 75
- fix
mapKey
could not map a key of printable characters to<esc>
(only fixed in the Firefox version) - Firefox: fix LinkHints can not exit itself when clicking an
<iframe>
goBack
command supports an optionreuse
=-2
/-1
to open a previous URL in the tab history in a new tab- just like you Ctrl+Click / Ctrl+Shift+Click the browser's "Back" button
- this feature can only work since Chrome 72, and currently not on Firefox
1.75.5:
- support
prefers-reduced-motion
andprefers-color-scheme
media queries- be able to auto disable animation and enter dark mode when some options are enabled
- enable the option "Auto reduce UI motions following your system settings" by default
- LinkHints: add a new option
mapKey
to translated typed keys to match marker text- use a subset of translation rules of
Custom key mappings
- require both sources and targets are single characters (can not map keys like
<a-d>
)
- use a subset of translation rules of
- LinkHints: by default, detect and use touch mode automatically since Chrome 48
- Vomnibar has a default style named
mono-url
. Remove it to switch monospace fonts for suggestion URLs - fix that LinkHints and Vomnibar might fail to switch to other tabs
- fix more issues about
passNextKey
discardTab
only discards those auto-discardable tabs which are marked by the browser if count is greater than 1- vimium://show : upgrade the embed Viewer.js
- Firefox: fix that help dialog may fail to show in rare cases
1.75.2:
- use new icons
- exclusion: make passKeys take precedence over mappedKeys
- now
mapKey
can map any key to<esc>
and map<esc>
and<c-[>
to others - LinkHints/Scroller/Vomnibar: activate on a parent frame if needed
- FindMode: auto fill/search with selected text by default
- a new option
selected=false
can prevent this behavior
- a new option
- fix some bugs of
passNextKey
- fix some rare edge cases on malformed webpages