]> git.gir.st - VimFx.git/blob - documentation/options.md
Add the `<s-f1>` Ignore mode "unquote" command
[VimFx.git] / documentation / options.md
1 <!--
2 This is part of the VimFx documentation.
3 Copyright Simon Lydell 2015.
4 See the file README.md for copying conditions.
5 -->
6
7 # Options
8
9 VimFx has many options that can be configured, but they all have nice defaults
10 so you shouldn’t need to.
11
12 You might also be interested [styling] VimFx and writing a [config file].
13
14 [styling]: styling.md
15 [config file]: config-file.md
16
17
18 ## Regular options
19
20 These options are available in VimFx’s settings page in the Add-ons Manager.
21
22 ### Hint chars
23
24 The characters used for the hints in Hints mode, which can be entered using one
25 of the many `f` commands. See also [The `f` commands].
26
27 [The `f` commands]: commands.md#the-f-commands-1
28
29 ### Previous/Next page patterns
30
31 Space separated lists of patterns that match links to the previous/next page.
32 Used by the `[` and `]` commands.
33
34 There is a standardized way for websites to tell browsers the URLs to the
35 previous and next page. VimFx looks for that information in the first place.
36 Unfortunately, many websites don’t provide this information. Then VimFx falls
37 back on looking for links on the page that seem to go to the previous/next page
38 using patterns.
39
40 The patterns are matched at the beginning and end of link text (and the
41 attributes defined by the advanced setting [`pattern_attrs`]). The patterns do
42 not match in the middle of words, so “previous” does not match “previously”.
43 The matching is case <strong>in</strong>sensitive.
44
45 Actually, the patterns are regular expressions. If you do not know what a
46 regular expression is, that’s fine. You can type simple patterns like the
47 default ones without problems. If you do know what it is, though, you have the
48 possibility to create more advanced patterns if needed.
49
50 Some of the default patterns are English words. You might want to add
51 alternatives in your own language.
52
53 Note: If you need to include a space in your pattern, use `\s`. For example:
54 `next\spage`.
55
56 [`pattern_attrs`]: #pattern_attrs
57
58 ### Blacklist
59
60 Space separated list of URLs where VimFx should automatically enter Ignore mode.
61
62 Note that the URLs in the list must match the current URL _entirely_ for it to
63 apply. Therefore it is easiest to always use the `*` wildcard (which matches
64 zero or more characters).
65
66 You might also want to read about the [Ignore mode `<s-f1>` command][s-f1].
67
68 [s-f1]: commands.md#ignore-mode-s-f1
69
70 ### Prevent autofocus
71
72 Many sites autofocus their search box, for example. This might be annoying when
73 browsing using the keyboard, as you do with VimFx, because it often feels like
74 VimFx isn’t responding, until you realize that you are typing in a text box—not
75 running VimFx commands!
76
77 For this reason VimFx prevents autofocus. If you dislike that, or think the
78 prevention is too aggressive, you may disable it, returning to the standard
79 behavior.
80
81 What is meant by “aggressive”? Well, in fact it is very hard to tell if a focus
82 was an “autofocus” or a “regular focus” caused by you. VimFx prevents all
83 focusing that doesn’t happen reasonably close (200ms by default) to an
84 interaction by you (such as clicking something or using one of the `f`
85 commands). (You may change what “reasonably close” means through the advanced
86 setting [`autofocus_limit`]).
87
88 [`autofocus_limit`]: #autofocus_limit
89
90 ### Ignore keyboard layout
91
92 If you use more than one keyboard layout, you probably want to enable this
93 option.
94
95 People who use a keyboard layout without the letters A-Z usually also use the
96 standard en-US QWERTY layout as well.
97
98 This option makes VimFx ignore your current layout and pretend that the standard
99 en-US QWERTY layout is always used. This way the default shortcuts work even if
100 your layout doesn’t contain the letters A-Z and all shorcuts can be typed by the
101 same physical keys on your keyboard regardless of your current keyboard layout.
102
103 (If you’d like VimFx to pretend that some other keyboard layout than the
104 standard en-US QWERTY is always used, you may do so with the special option
105 [`translations`].)
106
107 [`translations`]: #translations
108
109 ### Timeout
110
111 The maximum amount of time (in milliseconds) that may pass between two
112 keypresses of a shortcut.
113
114 It’s easy to press, say, `a` by mistake while browsing. Without a timeout, you
115 might be surprised that all search results are highlighted when you a bit later
116 try to search using the `/` command. (That’s what `a/` does.) _With_ a timeout,
117 the `a` would be cancelled when the timeout has passed.
118
119
120 ## Advanced options
121
122 These options are _not_ available in VimFx’s settings page in the Add-ons
123 Manager. They can only be changed in [about:config] or using the [public API].
124 They all start with `extensions.VimFx.`.
125
126 (There are actually a few more advanced options than those listed here. You can
127 see them all in [defaults.coffee].)
128
129 [about:config]: http://kb.mozillazine.org/About:config
130 [public API]: api.md
131 [defaults.coffee]: ../extension/lib/defaults.coffee
132
133 ### `prevent_target_blank`
134
135 You might have noticed that some links open in new tabs when you click them.
136 That is not the case if you “click” them using VimFx’s `f` command, though. If
137 you dislike that, disable this option.
138
139 ### `autofocus_limit`
140
141 If `prevent_autofocus` is enabled, all focus events except those that occur
142 within this number of milliseconds after a user interaction are suppressed.
143
144 If you set i to 0, _all_ programmaticly invoked focus events in web pages will
145 be prevented. Only focus events as the result of you clicking or pressing a key
146 are allowed. Some sites automatically focuses inputs after clicking some button,
147 which might make this undesireable.
148
149 Setting it to a very large value basically has the same effact as turning of
150 `prevent_autofocus`.
151
152 ### `prevent_autofocus_modes`
153
154 Space separated list of modes where `prevent_autofocus` should be used.
155
156 ### `hints_timeout`
157
158 The number of milliseconds a matched hint marker should stay on screen before
159 disappearing (or resetting).
160
161 ### Scrolling prefs
162
163 If you want to customize Firefox’s smooth scrolling, adjusting
164 `general.smoothScroll.{lines,pages,other}.duration{Min,Max}MS` is the way to
165 go. VimFx has similar prefs for the scrolling commands, but they work like
166 `layout.css.scroll-behavior.spring-constant`.
167
168 Basically, the higher the value, the faster the scrolling.
169
170 These are VimFx’s variants, and the commands they affect:
171
172 - `smoothScroll.lines.spring-constant`: `h`, `l`, `j`, `k`
173 - `smoothScroll.pages.spring-constant`: `d`, `u`, `<space>`, `<s-space>`
174 - `smoothScroll.other.spring-constant`: `gg`, `G`, `0`, `^`, `$`
175
176 Note that the value of these prefs are _strings,_ not numbers!
177
178 VimFx’s scrolling commands also respect a few built-in Firefox prefs.
179
180 `general.smoothScroll` lets you turn off smooth scrolling entirely, including
181 all of VimFx’s scrolling commands.
182
183 `general.smoothScroll.lines`, `general.smoothScroll.pages`, and
184 `general.smoothScroll.other` lets you selectively disable smooth scrolling.
185 VimFx’s scrolling commands follow the same “lines,” “pages” and “other”
186 categorization as in the above list.
187
188 By default you can scroll using the arrow keys in Firefox. You can control how
189 much they scroll by adjusting the following prefs:
190
191 - `toolkit.scrollbox.horizontalScrollDistance`: `<left>`, `<right>`, `h`, `l`
192 - `toolkit.scrollbox.verticalScrollDistance`: `<down>`, `<up>`, `j`, `k`
193
194 (VimFx used to have a `scroll_step` pref, but is has been replaced by the
195 above.)
196
197 ### `pattern_selector`
198
199 A CSS selector that targets candidates for a previous/next page link.
200
201 ### `pattern_attrs`
202
203 A space-separated list of attributes that the previous/next page patterns should
204 be matched against.
205
206 ### `activatable_element_keys`
207
208 Keys that should not trigger VimFx commands but be sent through to the page if
209 an “activatable” element (link or button) is focused.
210
211 ### `adjustable_element_keys`
212
213 Keys that should not trigger VimFx commands but be sent through to the page if
214 an “adjustable” element (form control or video player) is focused.
215
216
217 ## Special options
218
219 These options are available in neither VimFx’s settings page in the Add-ons
220 Manager nor in [about:config]. The only way to change them is by using the
221 [public API].
222
223 ### `translations`
224
225 See the description of the `translations` option in [vim-like-key-notation].
226
227 [vim-like-key-notation]: https://github.com/lydell/vim-like-key-notation#api
Imprint / Impressum