1 ### 0.15.0 (2016-05-18)
3 - Improved: Hint markers now appear up to twice as fast on many pages. This is
4 done by creating the hint markers in two phases. Most are created in the
5 first, fast, phase. The rest take the same time as older VimFx versions to
7 - Fixed: VimFx no longer triggers commands while typing in fancy text inputs on
8 some sites, such as when composing a new tweet on Twitter. (See also the
9 [`blur_timeout`] pref.)
10 - Changed: The `<c-enter>` Hints mode command no longer _replaces_ all hint
11 markers on screen (with new ones for all elements on screen). Instead, it
12 _toggles_ your current hint markers with ones for all _other_ elements on
14 - Changed: There was a breaking change to the [`vimfx.setHintMatcher`] function
15 of the `frame.js` config file API. It no longer receives and returns an object
16 (of the shape `{type, semantic}`), but instead simply receives and returns the
17 `type` of the element.
18 - Improved: Some internal robustness refactoring.
19 - Updated locales: de, id, nl and zh-CN. Thanks to @just-barcodes, Yoppy
20 Halilintar (@comepradz), @HJTP, @av2000ii and @mozillazg.
22 [`blur_timeout`]: https://github.com/akhodakivskiy/VimFx/blob/4a1d2468ee558ad1fdf9a4ab60f942d81bbc0b57/documentation/options.md#blur_timeout
23 [`vimfx.setHintMatcher`]: https://github.com/akhodakivskiy/VimFx/blob/4a1d2468ee558ad1fdf9a4ab60f942d81bbc0b57/documentation/api.md#vimfxsethintmatcherhintmatcher
25 ### 0.14.3 (2016-05-08)
27 - Fixed: Version 0.14.2 attempted to fix smooth scrolling speed in newer Firefox
28 versions. However, there was a tiny typo that caused the fix not to work. That
29 typo has been corrected.
31 ### 0.14.2 (2016-05-08)
33 - Fixed: Smooth scrolling speed is now correct again in newer Firefox versions.
34 - Fixed: The `yv` Caret mode command now only copies text that you can see on
35 screen (not any hidden text that might be on the page), making it truly work
36 like `zv` followed by `y`, as intended. This problem was very noticeable on
37 Slack. This also improves copying of 'contenteditable' elements using `yf`.
38 - Fixed: `<escape>` and arrow key handling as well as hint markers in the
39 devtools now work correctly again in newer Firefox versions.
40 - Fixed: VimFx no longer makes it impossible to open the Developer Toolbar.
41 - Improved: VimFx now ignores `<numlock>` and `<capslock>`. If your keyboard
42 sends `<numlock>` before some symbols, such as `<numlock>$` instead of just
43 `$`, shortcuts like `gx$` now work out of the box. This also means that you
44 can use `<capslock>` instead of `<shift>` when typing the `J` in `gJ`, for
46 - Improved: Some minor cosmetic tweaks in VimFx’s Keyboard Shortcuts help
49 ### 0.14.1 (2016-04-30)
51 - Fixed: The Find commands (such as `/`, `n` and `N`) no longer crash on some
52 sites (regression since 0.14.0).
54 ### 0.14.0 (2016-04-29)
56 - Added: [Caret mode], which lets you copy text from web pages using the
58 - Improved: The Find commands (such as `/`, `n` and `N`) now search from the top
59 of the viewport, instead of from the top of the document, which is more
60 Vim-like and less disorienting. To read more about it (or to return to the
61 Firefox default behavior) please see the [`find_from_top_of_viewport`] pref.
62 - Improved: Compatibility with the [BackTrack Tab History] add-on.
63 - Added: The `<c-enter>` Hints mode command, which creates hint markers for
65 - Fixed: `__dirname` inside config files now works on Windows. Thanks to
66 Zhong Jianxin (@azuwis)!
67 - Fixed: Unnecessary full-page hint markers on some sites, such as Hackernews,
70 [Caret mode]: https://github.com/akhodakivskiy/VimFx/blob/4ffda62560096f91244f3f7731171002ed174f05/documentation/commands.md#the-v-commands--caret-mode
71 [`find_from_top_of_viewport`]: https://github.com/akhodakivskiy/VimFx/blob/4ffda62560096f91244f3f7731171002ed174f05/documentation/options.md#find_from_top_of_viewport
72 [BackTrack Tab History]: https://addons.mozilla.org/firefox/addon/backtrack-tab-history/
74 ### 0.13.2 (2016-04-08)
76 - Improved: The “last position mark” `` ` `` now works more reliably.
77 - Improved: More video players are now recognized. Many video players lets you
78 press `<space>` while focused to toggle play/pause. VimFx tries to detect if
79 the currently focused element is a video player. If so, `<space>` is passed to
80 the video player instead of scrolling the page. (For those interested, see
81 also the [`adjustable_element_keys`] pref.)
83 [`adjustable_element_keys`]: https://github.com/akhodakivskiy/VimFx/blob/645e35d7d82019b0551534c43926bc126e7105bd/documentation/options.md#adjustable_element_keys
85 ### 0.13.1 (2016-04-01)
87 - Fixed: Blacklisting of some XUL pages.
88 - Fixed: The current mode is no longer lost when a page loads. For example, if
89 you press `zF` while a page is loading, the markers no longer disappear.
90 - Fixed: Elements that you have focused using an `f` command no longer get stuck
91 appearing as if you’d put the mouse pointer.
92 - Updated locale: zh-CN. Thanks to @mozillazg!
94 ### 0.13.0 (2016-03-19)
96 - Added: The `T` command, which opens a new tab after the current.
97 - Changed: The `gl` command now deals with _visited_ tabs only.
98 - Added: The [`gL`] command, which deals with <em>un</em>visited tabs only, in
99 oldest-first order. Use this to step through your unvisited background tabs in
100 the order you opened them (for example using the `F` command).
101 - Improved: The `gi` command no longer tries to focus the last focused text
102 input if it has been removed from the page. If so, it finds a new one instead.
103 - Fixed: You can now type in sidebar text inputs (such as in the history
104 sidebar) without having to switch to Ignore mode.
105 - Changed: If you enter Ignore mode you will now stay in Ignore mode in that tab
106 until you explicitly exit it (by pressing `<s-escape>`), even if you reload
107 the page or follow a link. If Ignore mode was entered automatically because of
108 the [blacklist][blacklist-2], though, you will be automatically returned to
110 the URL changes to a non-blacklisted page.
111 - Added: VimFx can now automatically enter and exit Ignore mode based on the
112 currently focused element. Currently, the [wasavi] extension as well as
113 [CodeMirror] in Vim mode are detected. Both of those provide Vim-style
114 editors. This allows sending `<escape>` to those editors in order to exit
115 their Insert mode, without blurring the editor.
116 - Improved: CodeMirror editors now get better hints, keeping the cursor where
118 - Improved: The [blacklist][blacklist-2] is now applied faster on some pages.
119 - Improved: Many audio and video elements are now recognized as “adjustable”,
120 allowing you to press for example `<space>` on them to toggle play/pause,
121 without scrolling the page.
122 - Improved: Scrolling by pages, such as using the `<space>` command, now takes
123 fixed heaears and footers into account, just like Firefox does.
124 - Fixed: Access keys now work correctly in context menus in the devtools and
126 - Improved: The arrow keys now Just Work in the devtools, even if you have bound
127 them to VimFx commands.
128 - Changed: The public API has been removed, and turned into the Config file API.
129 If you were already using a config file, it will no longer work. You need to
130 set up a new one, but you should be able to simply copy and paste the contents
131 of the old one into the new one. Read the [config file] documentation for more
133 - Changed: There are a few minor breaking changes to the API, though I doubt it
135 - If you use [`vimfx.on`], you probably need to adjust the arguments of the
136 your callbacks. They are now _always_ passed an object of data, instead of
137 sometimes passing the data directly.
138 - `match.focus` of [match object]s has been removed, and replaced by
139 `vim.focusType` of [vim object]s.
140 - Fixed: The toolbar button’s icon is now correctly sized when setting
141 `layout.css.devPixelsPerPx` to `2`. Thanks to Robert Ma (@Hexcles) and Dale
143 - Fixed: Find commands now work when the find bar was opened before the page had
145 - Improved: Lots of internal improvements. This should make VimFx faster, more
146 reliable and more responsive.
147 - All keyboard event handling (except `<late>` shortcuts) are now handled in
148 the UI process, instead of mostly in each tab’s web page content process.
149 This should make VimFx’s shortcuts more reliable and responsive.
150 - Removed all synchronous message passing (execpt for `<late>` keypresses).
151 Mozilla recommends using them only where absolutely necessary. Turns out
152 VimFx doesn’t need them anymore!
153 - The `f` commands are now more reliable. Before, they could crash on rare
154 occasions (on certain web pages), but that is less likely now.
155 - Less `MutationObserver`s are now used. This should improve performance.
156 - Less uncaught errors (especially on shutdown).
157 - Lots of minor improvements.
158 - Updated locale: ja. Thanks to Kaoru Esashika (@pluser)!
160 [`gL`]: https://github.com/akhodakivskiy/VimFx/blob/44b3e1bc350ceb1560176ee5b4ae97d9671a04db/documentation/commands.md#gl-1
161 [blacklist-2]: https://github.com/akhodakivskiy/VimFx/blob/44b3e1bc350ceb1560176ee5b4ae97d9671a04db/documentation/options.md#blacklist
162 [wasavi]: http://appsweets.net/wasavi/
163 [CodeMirror]: https://codemirror.net/demo/vim.html
164 [config file]: https://github.com/akhodakivskiy/VimFx/blob/44b3e1bc350ceb1560176ee5b4ae97d9671a04db/documentation/config-file.md
165 [`vimfx.on`]: https://github.com/akhodakivskiy/VimFx/blob/44b3e1bc350ceb1560176ee5b4ae97d9671a04db/documentation/api.md#vimfxoneventname-listener-and-vimfxoffeventname-listener
166 [match object]: https://github.com/akhodakivskiy/VimFx/blob/44b3e1bc350ceb1560176ee5b4ae97d9671a04db/documentation/api.md#match-object
167 [vim object]: https://github.com/akhodakivskiy/VimFx/blob/44b3e1bc350ceb1560176ee5b4ae97d9671a04db/documentation/api.md#vim-object
169 ### 0.12.0 (2016-02-03)
171 - Improved: More clickable elements are now recognized. Most notably, elements
172 with click event listeners added by JavaScript now get hints.
173 - Improved: Autofocus prevention after using the `[` and `]` commands.
174 - Added: In VimFx’s Keyboard Shortcuts help dialog (which can be opened by
175 pressing `?`) you can now click on any command to open VimFx’s settings page
176 in the Add-ons Manager and automatically select the text input for that
177 command, letting you edit its shortcuts. Tip: Use the `zF` command to click
178 without using the mouse.
179 - Changed: Autofocus is no longer prevented in Firefox internal pages, such as
180 `about:preferences`, `about:addons` and `about:config` (as well as other XUL
182 - Fixed: VimFx and the Beyond Australis extension do not conflict with each
184 - Fixed: The `gH` command no longer nags you about “No back/forward history”
185 even though there is.
186 - Added: The `gl` command now takes a [count][gl-count].
187 - Improved: Optimized CPU usage in Hints mode. (See also the [`hints_sleep`]
189 - Improved: The `H` and `L` commands should now be more reliable in Firefox 43
191 - Changed: There was a tiny breaking change to the Public API, though I doubt it
192 will affect anyone. (See [commit 0ca807605e] if you’re especially interested.)
193 - Improved: _Several_ minor things, and some really nice internal refactoring.
194 - Updated locale: de. Thanks to @just-barcodes!
196 [`hints_sleep`]: https://github.com/akhodakivskiy/VimFx/blob/92b483c4a4f6da0b2c998267e0f01d3d999f93b6/documentation/options.md#hints_sleep
197 [gl-count]: https://github.com/akhodakivskiy/VimFx/blob/92b483c4a4f6da0b2c998267e0f01d3d999f93b6/documentation/commands.md#gl
198 [commit 0ca807605e]: https://github.com/akhodakivskiy/VimFx/commit/0ca807605e8d69fdc01ef9ce5d539cf66ce7d96f
200 ### 0.11.0 (2016-01-15)
202 - Fixed: The `` ` `` command is no longer broken.
203 - Fixed: Memory leak.
204 - Added: The `gl` command, which takes you to the most recent tab.
205 - Improved: The Keyboard Shortcuts help dialog is now scrollable using VimFx’s
206 scrolling commands. To allow for this, the search field is no longer
207 autofocused. Instead, press `/` to open it.
208 - Improved: Using the `f` commands, such as `f` and `zf`, now works like
209 actually moving your mouse onto the link, making hover menus and such-like
211 - Improved: VimFx should now work better with Google Drive Documents, Etherpad
212 and a few other fancy text editors.
213 - Improved: The `]` command now works on google.com.
214 - Improved: Checkboxes and menu items on gmail.com are now given hints by the
216 - Improved: The `gi` command now also recognizes 'contenteditable' elements.
217 - Improved: Hint markers now move along together with their elements.
218 - Fixed: Hint markers should now be correctly positioned when zooming.
219 - Fixed: The toolbar button icon should now look correctly on Retina screens.
220 - Added: You may now disable counts by using toggling the [`counts_enabled`]
222 - Updated locale: de. Thanks to @just-barcodes!
223 - Improved: Several minor things.
225 [`counts_enabled`]: https://github.com/akhodakivskiy/VimFx/blob/8dae7aec9008595da31b939d5ae2d239849cf6dc/documentation/options.md#counts_enabled
227 ### 0.10.0 (2015-12-09)
229 - Added: The `zF` command, which lets you click browser elements.
230 - Improved: The scrolling commands can now scroll browser elements (in other
231 words, not only web page content), by first selecting the scollable element
233 - Added: The `gr` command, which toggles [Reader View].
234 - Added: The `gX` command, which opens the Recently Closed Tabs menu at the
235 middle of the screen.
236 - Added: The keys you’ve typed so far of a command, as well the count, are now
237 shown in a [notification]. (You may disable this using the
238 [`notify_entered_keys`] pref.)
239 - Improved: When commands don’t do anything, they show a [notification] instead,
240 letting you know that you actually pressed the right keys. For example, if you
241 press `f` but there are no markable elements visible, a notification is shown
242 telling you so, instead of silently doing nothing.
243 - Improved: `<space>` now scrolls _about a line less_ than a full page, just
244 like Firefox does by default. `d` scroll about _half_ a line less (by
245 default), so that pressing `d` twice works like pressing `<space>` once. (See
246 the [`scroll.full_page_adjustment` and `scroll.half_page_adjustment`] prefs
247 for more information.)
248 - Improved: `gi` now only selects all text in its text input if you haven’t
249 focused a text input yet (allowing you to easily replace pre-filled text),
250 instead of _always_ doing so. Otherwise, it now puts the cursor where you left
251 off typing the last time.
252 - Fixed: The `f` commands now put the cursor where you left off typing the last
253 time when focusing a text input. Previously, they accidentally selected all
254 text in the text input (use `zf` for that behavior).
255 - Fixed: Yet a scrolling fix. VimFx’s scrolling commands should now “just work”
257 - Fixed: AltGr should now work out of the box on Windows. (See the
258 [`ignore_ctrl_alt`] pref for more information.)
259 - Removed: The el-GR, hu and pl locales were sadly too out of date to be useful,
260 and nobody has shown interest in updating them, so they were removed.
261 - Updated locales: id, de and zh-CN. Thanks to Yoppy Halilintar, @just-barcodes
263 - Fixed: Several tiny bugs.
265 [Reader View]: https://support.mozilla.org/kb/firefox-reader-view-clutter-free-web-pages
266 [notification]: https://github.com/akhodakivskiy/VimFx/blob/ba9d4675e19ce315e6855b64400aae092e727975/documentation/notifications.md
267 [`notify_entered_keys`]: https://github.com/akhodakivskiy/VimFx/blob/ba9d4675e19ce315e6855b64400aae092e727975/documentation/options.md#notify_entered_keys
268 [`scroll.full_page_adjustment` and `scroll.half_page_adjustment`]: https://github.com/akhodakivskiy/VimFx/blob/ba9d4675e19ce315e6855b64400aae092e727975/documentation/options.md#scrollfull_page_adjustment-and-scrollhalf_page_adjustment
269 [`ignore_ctrl_alt`]: https://github.com/akhodakivskiy/VimFx/blob/ba9d4675e19ce315e6855b64400aae092e727975/documentation/options.md#ignore_ctrl_alt
271 ### 0.9.0 (2015-12-02)
273 - Fixed: Links with the `onclick` attribute can now be opened in new tabs again.
274 (Regression since 0.8.0.)
275 - Fixed: The text size in VimFx’s Keyboard Shortcuts help dialog is now
277 - Added: The `gH` command. It opens the back/forward button context menu in the
278 middle of the window, allowing you to choose a history entry with the arrow
281 ### 0.8.0 (2015-12-01)
283 - Fixed: VimFx now works properly in tabs moved to other windows.
284 - Fixed: An unreliable check for multi-process mode has been eliminated, fixing
285 various problems for some users.
286 - Fixed: VimFx’s toolbar button now changes color correctly when switching
287 between blacklisted and non-blacklisted tabs.
288 - Fixed: Dead keys now work out of the box on Windows.
289 - Improved: Links with the `onclick` attribute (abused as buttons) can no longer
290 get the same hint as another link.
291 - Added: The Keyboard Shortcuts help dialog (shown by pressing `?`) is now
293 - Added: The `g/` command. It’s like `/` but searches links only.
297 - Use `ma` to mark the current scroll position and `` `a `` to return to it.
298 (You may substitute `a` with any key press.)
299 - Use ``` `` ``` to return to the position before the last `gg`, `G`, `0`,
300 `$`, `/`, `n`, `N` or `` ` ``. (You can change this mark using the
301 [`last_scroll_position_mark`] pref.)
303 - Added: Window commands.
305 - `w`: Open new window.
306 - `W`: Open new private window.
307 - `gw`: Move tab to new window.
308 - `gF`: Follow link in new window.
310 [Marks]: https://github.com/akhodakivskiy/VimFx/blob/47fc699ce8217ee90af4d12e81f102f2bea09d61/documentation/commands.md#marks-m-and-
311 [`last_scroll_position_mark`]: https://github.com/akhodakivskiy/VimFx/blob/47fc699ce8217ee90af4d12e81f102f2bea09d61/documentation/options.md#last_scroll_position_mark
313 ### 0.7.3 (2015-11-22)
315 - Fixed: Scrolling now works correctly in pages in quirks mode (lacking a
316 doctype), such as Hackernews.
317 - Improved: The largest scrollable element is now detected better in frames.
318 - Fixed: Hints mode now exits correctly when focusing a text input using `af`,
321 ### 0.7.2 (2015-11-21)
323 - Fixed: The blinking text caret now always appears correctly when focusing text
326 ### 0.7.1 (2015-11-21)
328 - Fixed: The scrolling commands should now “just work” when using non-default
329 zoom or DPI settings, most notably on Google Groups.
331 ### 0.7.0 (2015-11-19)
333 - Changed: Instead of using system notifications, which turned out to be a bit
334 too intrusive, [notifications] are now similar to the “URL popup” (shown when
335 hovering or focusing links) but are placed on the opposite side,.
336 - Changed: The “Focus next element” and “Focus previous element” commands have
337 been removed. The reason they existed was to let `<tab>` and `<s-tab>` only
338 cycle between text inputs (as opposed to _all_ focusable elements) after
339 you’ve pressed `gi`. Now, `<tab>` and `<s-tab>` are handled specially instead,
340 and _only_ after pressing `gi`. The reason for this change is that the now
341 removed commands were too intrusive, breaking user habits. One of VimFx’s main
342 goal is _not_ to do that. (You can turn the special handling of `<tab>` and
343 `<s-tab>` off using the the new [`focus_previous_key` and `focus_next_key`]
345 - Fixed: The scrolling commands should now “just work” in a lot more situations,
346 most notably on Gmail and Google Groups. More scrollable elements are also
347 recognized by the `f` and `zf` commands.
348 - Improved: The right border of hint markers for scrollable elements is now
349 styled to remind of a scroll bar, making them easier to recognize among hints
351 - Improved/Changed: `J` and `gJ` now allow a count on the first tab.
352 Consequently, `K` and `gK` now allow a count on the _last_ tab.
353 - Changed: `gJ` and `gK` can no longer be used to pin or unpin tabs. They now
354 only wrap around tabs of the same pinned state. Use `gp` to toggle between
355 pinned and non-pinned.
356 - Fixed: Many elements that got a hint before VimFx 0.6.0 now do again.
357 - Improved: Comment fields on Facebook can now be focused using `f` and blurred
359 - Improved: VimFx’s toolbar button is no greyed out when you focus a text input.
360 This is to show that your key presses will be passed into the text input
361 rather than activating VimFx commands.
362 - Added: [`g0`, `g^` and `g$` now accept counts][tab-index-counts], allowing you
363 to go to tab number _count._
364 - Improved: `gi` now finds text inputs inside frames.
365 - Fixed: “gi mode” is now exited properly when blurring a text input.
366 - Fixed: `<select>` elements are no longer considered to be text inputs when
367 using `<tab>` and `<s-tab>` in “gi mode.”
368 - Fixed: Using `<force>` or `<late>` in a shortcut no longer applies to _every_
369 shortcut for the command, but only that shortcut.
370 - Fixed: The order of the Previous/Next page patterns is now respected. This
371 caused the wrong link to be picked by the `[` and `]` commands on some pages.
373 [`focus_previous_key` and `focus_next_key`]: https://github.com/akhodakivskiy/VimFx/blob/d70b5bb14be89d9ce52138b0e9abdef1b31ad337/documentation/options.md#focus_previous_key-and-focus_next_key
374 [notifications]: https://github.com/akhodakivskiy/VimFx/blob/d70b5bb14be89d9ce52138b0e9abdef1b31ad337/documentation/notifications.md
375 [tab-index-counts]: https://github.com/akhodakivskiy/VimFx/blob/d70b5bb14be89d9ce52138b0e9abdef1b31ad337/documentation/commands.md#g0-g-g
377 ### 0.6.2 (2015-11-11)
379 - Improved: If the entire page isn’t scrollable, the largest scrollable element
381 - Fixed: VimFx’s keyboard shortcuts now works on slowly loading pages.
382 - Fixed: Numbers may now be used as shortcut keys (overriding counts).
383 - Fixed: The toolbar button’s icon is now correctly sized in high DPI.
384 - Fixed: Hint markers are now correctly positioned when zooming using the “Zoom
386 - Fixed: The `P` command now works with the InstantFox add-on.
388 ### 0.6.1 (2015-11-10)
390 - Fixed: If you customized the “esc” command before VimFx 0.6.0 it should now
392 - Fixed: `<tab>` now works as expected in the location bar and in the dev tools.
393 - Fixed: Light-weight themes can no longer make VimFx’s Keyboard Shortcuts help
394 dialog and hint markers unreadable.
395 - Added: The [notifications\_enabled] option.
397 [notifications\_enabled]: https://github.com/akhodakivskiy/VimFx/blob/56c4b7c514ea8b58d2cdcecf3d2654648c48ca31/documentation/options.md#notifications_enabled
399 ### 0.6.0 (2015-11-09)
401 ##### Most important (breaking) changes
403 - VimFx now works properly with **any keyboard layout.** Users of **multiple
404 layouts** should enable the **[ignore keyboard layout] option.** #249 #259
406 - Features related to disabling VimFx, and to the [toolbar button]:
408 - **Insert Mode** has been renamed to **_Ignore_ mode.**
409 - **[Blacklisted][blacklist] sites** now **enter Ignore mode automatically,**
410 instead of being specially handled.
411 - The feature to click the toolbar button (or press `<a-V>`) to **disable
412 VimFx** has been **removed.** Use **Ignore mode** (`i`) and the
413 **[blacklist] instead.**
414 - The **toolbar button** is now **red in Ignore mode** (which also means that
415 it is red on blacklisted sites) and green otherwise (never grey anymore).
416 - The toolbar button no longer offers to (un-)blacklist the current domain.
417 (Head into VimFx’s settings page in the Add-ons Manager and add
418 `*currentdomain.com*` to the [blacklist] option yourself instead.)
420 (See [commit 3552282] for more information.)
422 - **Some default shortcuts have changed,** mostly because they conflicted with
423 standard Firefox shortcuts: #308
429 - `g^` and `gH` → `g0`
431 `g^` now selects the first _non pinned_ tab instead, while `g0`
432 selects the first tab regardless of whether it is pinned or not. #317
434 - `<c-e>` (alias for `j`) and `<c-y>` (alias for `k`) have been removed.
436 - `<c-f>` → `<space>` and `<c-b>` → `<s-space>`
440 This frees up `v` for future shortcuts (instead making `z` a
441 “namespace” key, just like in Vim).
443 - To **exit Ignore mode:** `<escape>` → `<s-escape>`. This is because Ignore
444 mode has replaced the disable feature, as well as the special blacklist
445 state (see above). Sites are likely to use `<escape>` but not `<s-escape>`.
446 (In a way, this new role of Ignore mode also means that the old (many times
447 broken) shortcut to disable VimFx (`<a-V>`) has been replaced by `i`.) #64
450 - VimFx’s Keyboard Shortcuts help dialog is now help only, and more accessible.
451 To **customize keyboard shortcuts,** go to VimFx’s settings page **in the
452 Add-ons Manager,** just like you would to customize other settings. Also,
453 **commas** between every key are **no longer needed:** Type `gJ` instead of
456 - For performance reasons, **Hint markers** are now placed vertically **centered
457 instead of at the top** of the element. Don’t be surprised if you see the same
458 hint repeated several times**—links that go to the same place now get the same
459 hint.** The “Smart hints” option has been removed—hints are _always_ smart
460 now, and a lot smarter than before. Finally, hints now also work in the new
461 tab page, the Add-ons Manager and the preferences page. If you want to, you
462 can read more about [the `f` commands]. \#51 #60 #176 #320 #325 #468 #471 #475
464 - The **`F`** command now _always_ opens tabs in new **background** tabs, while
465 **`gf`** has been added to open tabs in new **foreground** tabs. #227 #464
467 - **Autofocus prevention** is now **off by default.** One of VimFx’s core
468 philosophies is to be nice to your browser habits. Some find autofocus
469 prevention too big a change. Turn it on again if you like it! By the way,
470 autofocus prevention now works much more reliably and should not cause issues
471 with other extensions. #497 #541
473 - The **“Scroll step”** option has been **removed**. The scrolling commands that
474 used it now **work like the arrow keys instead,** and are customized just like
475 them. See [scrolling prefs] for more information.
477 - Speaking of scrolling, **which elements scrolls** when you use VimFx’s
478 scrolling commands **has changed.** See [scrolling commands] for more
485 - `gp` pins or unpins the current tab. (Also see `g^` and `g0` mentioned
487 - `yt` duplicates the current tab. #121
488 - `0` and `^` scroll to the far left, and `$` scrolls to the far right.
489 - [`gi`] has finally been implemented. #47
490 - [Ignore mode `<s-f1>`] let you run a Normal mode command without exiting
493 - In Hints mode you can now hold ctrl and alt to change behavior of the matched
494 marker. Hold shift to temporarily make the hints see-through. See [the `f`
495 commands] for more information. #220 #421 #484
497 - Some commands now accept [counts]. #374
499 - It is now possible to create shortcuts that work inside text inputs. See the
500 [`<force>`] key for more information. #258
502 - It is now possible to create shortcuts that the page can override. See the
503 [`<late>`] key for more information.
505 - A number of [advanced options] have been added. Rather than listing everything
506 regarding them here, follow that link if you’re interested. #452 #489
508 - You may now, if you want to, configure VimFx through a [config file], using
509 the new [public API]. Customizing VimFx through a config file also gives extra
510 abilities, such as [site-specific options][option-overrides] and [disabling
511 certain commands on certain sites][key-overrides]. It also allows to add
512 [custom commands] \(and other extensions to extend VimFx). #158 #235 #255 #261
513 \#300 #408 #445 #490 #515
515 - It is now easier to customize VimFx through custom [styling]. An example is
516 changing the way hint markers look. #220 #233 #424 #432 #465
518 - VimFx now has [documentation] and a [wiki].
520 - A few new locales were added:
522 - fr. Thanks to Mickaël RAYBAUD-ROIG (@m-r-r)!
523 - pt-BR. Thanks to Átila Camurça Alves (@atilacamurca)!
524 - sv-SE. Thanks to Andreas Lindhé (@lindhe)!
528 - VimFx is now multi-process/Electrolysis/e10s compatible! This means that you
529 can run VimFx on a version of Firefox with multi-process enabled without
530 issues, and that we’re future proof for the day when Firefox becomes
531 multi-process by default. Best of all, it also made VimFx more reliable in
532 non-multi-process (“regular”) Firefox. #378
534 - The `[` and `]` commands are now smarter, recognizing more links to the
535 previous/next page correctly. You may read more about [previous/next page
538 - The `n` and `N` commands now notify you when they wrap around the page, or the
539 phrase you searched for could not be found. #398
541 - _All_ shortcuts in _all modes_ can now be customized. For example, this allows
542 you to disable VimFx’s Vim-style `<enter>` behavior in the find bar. #222 #390
545 - The `p` and `P` commands are now smarter regarding whether to treat the
546 clipboard contents as a URL or a search, by working exactly like pasting in
547 the location bar. They also now read the selection clipboard, if available.
550 - VimFx’s toolbar button is now properly implemented. #303 #349 #383
552 - Most locales were updated. Thanks to our awesome [translators]!
554 ##### Minor bug fixes
556 - VimFx now works correctly in tabs dragged to other windows. #57
557 - The `p` command is no longer broken. #494
558 - Non-ASCII shortcut keys now work properly. #433
559 - The Keyboard Shortcuts help dialog can no longer be covered by page elements.
561 - Hint markers can no longer be covered by page elements.
562 - VimFx no longer causes scripts on icloud.com to get stuck in an infinite loop.
565 [advanced options]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/documentation/options.md#advanced-options
566 [blacklist]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/documentation/options.md#blacklist
567 [ignore keyboard layout]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/documentation/options.md#ignore-keyboard-layout
568 [previous/next page patterns]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/documentation/options.md#previousnext-page-patterns
569 [scrolling prefs]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/documentation/options.md#scrolling-prefs
570 [counts]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/documentation/commands.md#counts
571 [`gi`]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/documentation/commands.md#gi-1
572 [Ignore mode `<s-f1>`]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/documentation/commands.md#ignore-mode-s-f1
573 [scrolling commands]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/documentation/commands.md#scrolling-commands-1
574 [the `f` commands]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/documentation/commands.md#the-f-commands-1
575 [`<force>`]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/documentation/shortcuts.md#force
576 [`<late>`]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/documentation/shortcuts.md#late
577 [config file]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/documentation/config-file.md
578 [public api]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/documentation/api.md
579 [option-overrides]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/documentation/api.md#vimfxaddoptionoverridesrules
580 [key-overrides]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/documentation/api.md#vimfxaddkeyoverridesrules
581 [styling]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/documentation/styling.md
582 [toolbar button]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/documentation/styling.md
583 [translators]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/PEOPLE.md#translators
584 [documentation]: https://github.com/akhodakivskiy/VimFx/blob/c790b0fc1127c66bb7b33ccbaf4c0e8090e5530b/documentation/
585 [wiki]: https://github.com/akhodakivskiy/VimFx/wiki/
586 [custom commands]: https://github.com/akhodakivskiy/VimFx/wiki/Custom-Commands
587 [commit 3552282]: https://github.com/akhodakivskiy/VimFx/commit/355228217d7e7a61f5e1edbb9efbfb0f3e4ef81c
589 ### 0.5.17 (2015-01-23)
591 - Fixed: The hints generation no longer crashes on some pages (regression since
594 ### 0.5.16 (2015-01-22)
596 - Fixed: The toolbar button no longer throws errors. (This fix should have been
597 in 0.5.15 but was forgotten. Luckily an AMO reviewer found it.)
599 ### 0.5.15 (2015-01-21)
601 - Improved: This version is now forwards-compatible with the upcoming version
602 0.6.0. Downgrading from 0.6.0 to 0.5.14 or older might cause VimFx to crash,
603 but downgrading from 0.6.0 to 0.5.15 is safe.
604 - Fixed: Non-hintchars key presses in hints mode are now suppressed. They used
605 to be passed along to the browser, which could confusingly activate site
607 - Fixed: The 'f' command now always opens links in the same tab. Links used to
608 be able to force a new tab or window.
609 - Fixed: Pressing 'Esc' in the location bar now restores the URL, as is the
610 default behaviour of Firefox. You may now also close Firefox dialogs using
612 - Improved: Updated the de locale. Thanks to Alexander Haeussler!
613 - Improved: Updated the pl locale. Thanks to morethanoneanimal!
615 ### 0.5.14 (2014-08-16)
617 - Fixed: Locales should now work properly.
618 - Improved: Updated the zh-CN locale (@mozillazg).
619 - Improved: Updated the de locale (@Kambfhase).
620 - Added: Japanese locale (@pluser).
621 - Fixed: If you switched to another tab or window while an `<input>` element
622 was focused and then switched back, the `<input>` element got blurred, while
623 it should have stayed focused. This caused the auto-type feature of KeePassX
626 ### 0.5.13 (2014-08-02)
628 - Fixed: The vote button on StackExchange sites are now markable again.
629 - Improved: Detection of previous/next links. Should work better on gmail now.
630 - Fixed: It is now possible to use Enter/Return in keyboard shortcuts.
631 - Improved: The n/N commands (etc.) now work even if you didn’t open the finbar
632 using the VimFx command (such as the default key binding ctrl+f, or by
633 clicking a menu item).
634 - Improved: It is now possible to blur text inputs without sending Esc to the
635 page, which could cause dialogs etc. to annoyingly close.
636 - Improved: Updated the el-GR locale (@sirodoht).
637 - Fixed: Autofocus prevention sometimes made text inputs impossible to focus
638 until you reloaded the page.
639 - Improved: Autofocus prevention now works on more sites than before.
640 - Improved: Autofocus prevention now prevents _all_ automatic focusing (not
641 just when the page loads). This makes devdocs.io much easier to use.
642 - Added: When viewing images directly and the image has been resized to fit the
643 screen the image is now markable, allowing you to toggle zoom on it using the
645 - Fixed: It is no longer possible to add conflicting shortcuts (such as adding
646 'a' when 'af' and 'as' are already present).
648 ### 0.5.12 (2014-06-01)
650 - Fixed: Autofocus prevention got stuck sometimes, making it impossible to
653 ### 0.5.11 (2014-06-01)
655 - Fixed: The focus search bar command was broken.
656 - Fixed: Autofocus prevention was broken.
657 - Fixed: The top bar on YouTube could not be accessed by VimFx.
658 - Fixed: You can no longer add blank hotkeys.
659 - Improved: Tab Groups are supported.
660 - Improved: Matching of previous/next links should be more reliable.
661 - Improved: A few minor things.
663 ### 0.5.10 (2014-05-07)
665 - Fixed yet another bug related to the default preferences
667 ### 0.5.9 (2014-05-04)
669 - Fixed a bug with default preferences not being set
670 - Fixed gg and G to be faster
672 ### 0.5.8 (2014-04-18)
674 - AMO Preliminary Review bug fix (sorry for such long delay)
676 ### 0.5.7 (2014-03-03)
680 ### 0.5.6 (2014-02-26)
682 - Updated some translations
683 - Updated pagination patterns and logic
685 ### 0.5.5 (2014-01-03)
687 - Hotfix release to address a bug that has been introduced in 0.5.4
689 ### 0.5.4 (2014-01-03)
691 - Fix for popup passthrough mode stucking
692 - Make toolbar button click depend on current mode
693 - Higher weight markers should not be overlapped
694 - Refactor find mode to use Firefox native search bar
695 - Bump minimum required Firefox version to 25
696 - Added commands to go in the URL path
697 - Added commands to navigate previous and next links with customizable link
699 - Use Firefox 24+ native console API
700 - Update zh-CN localization
702 ### 0.5.3 (2013-10-16)
704 - Lots of refactoring
705 - Insert mode (`i` command)
706 - Follow multiple links with `af` command
707 - Hint marker rotation with `space` while in hints mode
709 ### 0.5.1 (2013-08-21)
711 - Fixed regression with stylesheets
716 - Added command to focus search bar: `O`
717 - Added commands to stop loading current page and all pages: `s` and `as`
718 - Invisible elements will not get hint markers
719 - Compatibility with Firefox 25
720 - Simple shortcut customization with UI in Help dialog
721 - Use Huffman coding algorithm for hint markers generation which results in
723 - Implemented Bloom filters to achieve shorter hints for those shortcuts that
725 - Reimplemented scrolling - now works with pages where window is not scrollable
726 - Find disabled on non HTML documents
727 - Find string is now global for all windows.
728 - Fixed logic of locale discovery. Now we rely on general.useragent.locale
729 Firefox preference for current locale
731 ### 0.4.8 (2013-06-12)
733 - `embed` and `object` tags will now have their own hints
734 - Bug fixes related to custom hint chars (@LordJZ)
735 - Fixed `t` - now it will be nice to other extensions
736 - Updated Chinese translations (@mozillazg)
737 - Reenter Normal mode on page reloads to avoid getting stuck in Hints mode
739 - Search will focus element that contains matching text
740 - Fixed hint markers for iframes
741 - Marker bug fixes (@LordJZ)
743 ### 0.4.6 (2013-03-27)
745 - Reimplemented find mode: CJK support, performance boost
746 - `a/` or `a.` to highlight all matches of the search string on the page
747 - Hint markers will now reach into iframes
748 - Key handling is disabled when a popupmenu or panel are shown
749 - `yf` will now also focus links and copy values from text/textarea element
750 - `vf` will show hit markers to focus the underlying element
752 ### 0.4.5 (2013-03-12)
754 - `:` to open Firefox Developer Toolbar, `Esc` to close it.
755 - Add Hungarian locale (@thenonameguy).
756 - Add Polish locale (@grn).
757 - Don't close pinned tabs when pressing x (@grn).
758 - Switched to Makefile for building the extension release (@carno).
759 - Mrakers CSS tweaks (@helmuthdu)
761 ### 0.4.4 (2013-01-30)
763 - Thanks to @mozillazg and @mcomella for translation contributions.
764 - Added `gh` command that will navigate to the home page.
765 - Added `o` command to focus location bar.
766 - `p` and `P` will parse the contents of the clipboard. If the string in the
767 clipboard appears to be a URL then it will navigate to this URL. Otherwise it
768 will search for the string in the clipboard using currently selected search
770 - Now hint markers for links will stay on top of all the markers for different
772 - Esc will now also close the focused default search bar.
773 - Fixed bugs related to keyboard events handling, XUL documents, and some other
775 - Bug fixed where not all the commands could be disabled via the Help dialog.
777 ### 0.4.3 (2012-12-27)
779 - Toolbar button bugfix
780 - Added an option to disable individual commands via the help dialog
782 ### 0.4.1, 0.4.2 (2012-12-12)
784 - Small tweaks of the find feature.
785 - Bugfix for keyboard handling on non-english keyboard layouts
789 - Implemented find with `/` and `n/N`
790 - Added `ar` and `aR` commands to reload pages in all open tabs.
791 - Added a preference that enables blurring from any element that has input focus
792 in the browser on Esc keydown (on by default)
793 - Fixed bug where markers and help dialog would blow up some of the pages.
794 - Marker hints are now sorted with respect to the underlying element area.
795 Elements with larger area get shorter hints
796 - Added *mail.google.com* to the default black list
797 - Various bug fixed and improvements.
799 ### 0.3.2, 0.3.2, 0.3.3 (2012-11-20)
801 - Hotfixes for the build script to include localization related files and folders
805 - Fixed [Desktop](https://addons.mozilla.org/en-us/firefox/addon/desktop/)
806 extension compatibility problem
807 - Removed c-b/c-f for now. c-f is a standard search hotkey. Will put c-f back
808 when proper Vim-like search with / is implemented
809 - Scrolling with G will now reach the bottom of the page
810 - Implemented localization, currently there is only Russian localization.
811 Community is welcome [to contribute your localizations](https://github.com/akhodakivskiy/VimFx/tree/master/extension/locale)!
812 - Implemented simple smooth scrolling
816 - document.designMode='on' is now honored. Will also provide hint markers for
818 - Bug fixed where it would completely reset the toolbar while installing the
820 - Bug fixed where it's not possible to change the text in the blacklisting
822 - Changed u/d to scroll half a page, added c-f/c-b to scroll full page
823 - Added tab movement commands: c-J and c-K.
824 - Invisible markers bug fixed.
825 - Global hotkey to disable the commands (equal to the toolbar button click):
827 - ^u and ^d are removed from the command list. ^u is commonly used to show the
829 - Opening new tab with now focuses the location bar
830 - Other small bugs nailed down.
832 ### 0.1.1 (2012-10-27)
834 - Just to deal with AMO - no changes