← XeFM crftwr/xefm on GitHub · craftware

Filepath TAB Completion

Overview

XeFM’s text prompts complete file and directory paths as you type. Press TAB in any path or name prompt to fill in the rest of a name, or to pop up a list of the matching entries when several are possible. It works like shell path completion: the first TAB fills in as much as is unambiguous, and a second TAB (or continued typing) shows and narrows the choices.

Where it works

Prompt Opened by Completes
Jump to Path jump_to_path files + directories
New Directory create-directory files + directories
New File create-file files + directories
Rename R (single item) files + directories
Create Archive create-archive files + directories

“Jump to Path” completes files as well as directories: a file path is a valid destination there — the pane goes to its directory and the cursor lands on the file. The naming prompts complete both too, which helps when typing a nested name such as sub/dir/name.

Using it

  1. Start typing a path or name and press TAB.
  2. One match — it is filled in completely. A directory gets a trailing /, so another TAB descends into it.
  3. Several matches — the shared leading text is filled in and a candidate list appears just below the field:
    • Keep typing to narrow the list (it updates live; it hides when nothing matches and stays up when a single match remains).
    • ↑ / ↓ (also PageUp / PageDown) move the highlight through the list; it wraps around at the ends.
    • Enter on a highlighted row inserts that entry. With no row highlighted, Enter submits the prompt as usual — so completion never gets in the way of just accepting what you typed.
    • Click a row to insert it.
    • Esc closes the list (a second Esc cancels the prompt).

Paths beginning with ~ (your home directory), relative paths, and absolute paths all complete. Matching is case-sensitive, matching how the filesystem names things.

Hidden files

Completion follows the panes’ hidden-files toggle: while hidden files are off, dot-entries (.config, .gitignore, …) do not appear among the candidates — the same rule the file lists use.

Typing the leading dot yourself overrides this for that one token, the way shells do: .c + TAB still completes .config/ even with hidden files off, so a hidden directory stays reachable without flipping the toggle.

On Windows an entry can be hidden by attribute rather than by name (AppData, $Recycle.Bin). Those follow the toggle too, and nothing you type brings them back for one token — there is no leading dot to spell — so reaching them means turning hidden files on.

Notes and limits

See also: developer notes.