← XeFM English | 日本語 · crftwr/xefm on GitHub · craftware

Folder Tabs

English | 日本語

Each pane can hold several tabs, and each tab keeps its own place open. Use them for the handful of directories a task moves between, or to keep a search result or an imported list while you browse somewhere else.

Action Menu
new_tab Go → New Tab
open_in_new_tab Go → Open in New Tab
close_tab Go → Close Tab
next_tab Go → Next Tab
prev_tab Go → Previous Tab

Keys depend on your keymap preset — see Keymap Presets.

All of them act on the active pane. The left and right panes have separate tabs.

Opening and closing

The tab strip

Once a pane has more than one tab, a strip appears above its path:

 1 src   2 docs   3 ⌕ TODO
 ~/projects/xefm/doc

The current tab is highlighted. Click a tab to switch to it. A pane with one tab shows no strip, so it takes no extra space in a terminal.

Each label is the directory’s name. A search shows as ⌕ query and an imported list as [title]. Labels are shortened when they don’t all fit.

What a tab keeps

Everything the pane shows: the directory, cursor, selection, sort and filter. Search results, imported lists and branch views are kept as they are, so you can leave one and come back to it later.

A directory tab is re-read when you switch back to it. Anything that changed while it was hidden (including changes made from the other pane) shows up without a flicker.

History is shared. Go → History… lists the directories you have visited in any tab.

Between sessions

When you quit, XeFM saves each pane’s tabs (directory, sort and filter) and which tab was current. On the next launch, only the current tab is read. The others are read the first time you switch to them, so a tab on a remote server doesn’t connect at startup.

A search-result or list tab comes back as its directory. A pane you open on a directory from the command line starts with that one tab.

Changing the keys

KEY_BINDINGS['next_tab'] = ['Ctrl-PAGE_DOWN', 'Ctrl-TAB']
KEY_BINDINGS['prev_tab'] = ['Ctrl-PAGE_UP', 'Ctrl-Shift-TAB']

Terminals don’t send Ctrl-Tab, so a binding on it works only in the desktop app. See Key Bindings.