Welcome to Vifm Q&A, where you can ask questions about Vifm usage. Registration is optional, anonymous posts are moderated. GitHub or Google logins are enabled.
0 votes
in vifm by

For some keys, the list of available keybindings stay until you press the second key. In some cases it disappears after like 2-3 seconds. What is the reason?

Thank you

1 Answer

+1 vote
by
selected by
 
Best answer

It disappears when input is processed. It lingers if there is an ambiguity (two or more mappings with common prefix).

by

Let me explain more: I have couple of two-key binds that start with n. When I press n, the list of binding shows up for like 2-3 seconds and then disappears by itself (without me pressing anything). This is not the case for two-key binds starting with let's say y. Is there a reason for the difference in behavior?

by

t is another example. The list of keybindings disappears after 2-3 seconds.
d on the other hands will keep the list until you press the second key

by

There are builtin mappings for t and n, but only d_something. There is no ambiguity for d between user and builtin mappings, so there is no timeout for waiting for the next key before executing a builtin one.

by

before executing a builtin one

When I press d, no matter how long I wait, it still does not execute anything. It just keep showing the binding list. Could you elaborate on what you mean by executing a builtin one?

by

There is not builtin mapping for d alone, it has to be followed by something to be processed. This is why wait time for it is infinite.

There are two layers of mappings for every mode: builtin and user, with user mappings shadowing builtin ones. For every input one of this is the case (if <wait> wasn't specified):

  1. Exact user match. No timeout. User sequence is dispatched.
  2. Partial user match and exact builtin match (t, n). Timeout waiting for a next key. If nothing was entered, builtin key is dispatched.
  3. Partial user and builtin match (d). Infinite timeout.
by

got it, thank you.

If you would like to make a bug report or feature request consider using GitHub, SourceForge or e-mail. Posting such things here is acceptable, but this is not a perfect place for them.
...