What's the rationale behind gj and gk? I know that gh and gl are used in lsview but I could not find any application of gj and gk.
gj
and gk
are defined just for consistency and currently are equivalent to j
and k
respectively.
Same thing with l and i. Both seem to do the same thing. Is there any difference between them?
If you press l
on an executable it might run it (depends on 'runexec'
option), while i
never runs element you pick and can be used to edit a script.
I don't understand types of filters. Documentation describes three types, specifically manual, automatic and local but the semantics isn't clear for me. I suppose they relate to where I type filter command but I'm not sure.
That's quite right. Manual is what you setup with :filter
, automatic is populated by zf
and local is an interactive filtering with =
.
How yank works internally? Does it create some file containing paths of yanked files for every register somewhere in home directory?
The list of paths is kept in memory, but if you close vifm and 'vifminfo'
option contains "registers"
, the list is saved in vifminfo
file.
It might seem strange, but I have no idea what { and } are supposed to do. I've read descriptions of these in the documentation several times and even then they looked strange to me. I must be missing something apparently.
If you are on a file, }
will move to next entry that is a directory.
If you are on a directory, }
will move to next entry that is a file.
{
does the same in the opposite direction.
Referencing (
in corresponding docs might be confusing and could be improved.
Do zj and zk work only in tree mode? Outside of it they simply don't work for me or perhaps they are one more thing I didn't get reading manual.
They are similar to {
and }
, but navigate only to directories. To see zj
and zk
working you need to have some directories in file list.
Same thing about [z and ]z. Inside tree view they seem useful, however outside they basically jump to the top and bottom of view, just like gg and G.
When not in tree mode, all entries are on the same level, so they in fact become gg
and G
.
Is there a way to fold directories in tree view mode?
There isn't at the moment. You can use zd
to exclude a directory completely.
What abbreviations are used for? I could not find any information about them and information provided by documentation isn't clear for me.
To do some sort of macro expansion on command-line. Like:
cabbrev findhere find -maxdepth 1 -name
then by typing "findhere" in command line mode you'll get that longer string and will be able to continue typing and see the full command that will be executed.
What's the distinction between marks and bookmarks? As far as I can comprehend, marks operate on directories whereas bookmarks operate on files?
Both can be used on files and directories. The difference is that marks are shorter and quicker to use (can be part of :ranges; can be used in a motion), but harder to remember and not convenient after number of things pass some threshold. Bookmarks aren't limited in their count, searchable and can have more explicit names.
Does vifm support defining custom functions inside vifmrc? What's the state of plugin ecosystem in general? Seems like there is no way to write one at this moment.
No, but the need for functions is present, because complicated mappings of :command definitions are hard to write and don't look nice.
I don't think there are any plugins out there. There are means for extending builtin functionality, but supporting some sort of plugins wasn't actually a goal so far.