Emacs/docs/latest/emacs/Tab-Bars
Next: Dialog Boxes, Previous: Tool Bars, Up: Frames [Contents][Index]
21.17 Tab Bars
On graphical displays and on text terminals, Emacs can optionally display a Tab Bar at the top of each frame, just below the menu bar. The Tab Bar is a row of tabs—buttons that you can click to switch between window configurations on that frame.
Each tab on the Tab Bar represents a named persistent window configuration. Its name is composed from the list of names of buffers visible in windows of that window configuration. Clicking on the tab switches to the window configuration recorded by the tab; it is a configuration of windows and buffers which was previously used in the frame when that tab was the current tab.
If you are using the desktop library to save and restore your sessions (see Saving Emacs Sessions), the tabs from the Tab Bar are recorded in the desktop file, together with their associated window configurations, and will be available after restoring the session.
Note that the Tab Bar is different from the Tab Line (see Tab Line). Whereas tabs on the Tab Line at the top of each window are used to switch between buffers, tabs on the Tab Bar at the top of each frame are used to switch between window configurations containing several windows with buffers.
To toggle the use of tab bars, type M-x tab-bar-mode. This command applies to all frames, including frames yet to be created. To control the use of tab bars at startup, customize the variable tab-bar-mode.
The variable tab-bar-show controls whether the Tab Bar mode is turned on automatically. If the value is t, then tab-bar-mode is enabled when using the commands that create new tabs. The value 1 hides the tab bar when it has only one tab, and shows it again when more tabs are created. The value nil always keeps the tab bar hidden; in this case it’s still possible to switch between named window configurations without the tab bar by using M-x tab-next, M-x tab-switcher, and other commands that provide completion on tab names. Also it’s possible to create and close tabs without the tab bar by using commands M-x tab-new, M-x tab-close, etc.
The prefix key C-x t is analogous to C-x 5. Whereas each C-x 5 command pops up a buffer in a different frame (see Creating Frames), the C-x t commands use a different tab with a different window configuration in the selected frame.
The various C-x t commands differ in how they find or create the buffer to select. The following commands can be used to select a buffer in a new tab:
- C-x t 2
Add a new tab (
tab-new). You can control the choice of the buffer displayed in a new tab by customizing the variabletab-bar-new-tab-choice.- C-x t b
bufnameRET Select buffer
bufnamein another tab. This runsswitch-to-buffer-other-tab.- C-x t f
filenameRET Visit file
filenameand select its buffer in another tab. This runsfind-file-other-tab. See Visiting.- C-x t d
directoryRET Select a Dired buffer for directory
directoryin another tab. This runsdired-other-tab. See Dired.
By default, a new tab starts with the buffer that was current before calling the command that adds a new tab. To start a new tab with other buffers, customize the variable tab-bar-new-tab-choice.
The variable tab-bar-new-tab-to defines where to place a new tab. By default, a new tab is added on the right side of the current tab.
The following commands can be used to delete tabs:
- C-x t 0
Close the selected tab (
tab-close). It has no effect if there is only one tab, unless the variabletab-bar-close-last-tab-choiceis customized to a non-default value.- C-x t 1
Close all tabs on the selected frame, except the selected one.
The variable tab-bar-close-tab-select defines what tab to select after closing the current tab. By default, it selects a recently used tab.
The command tab-undo restores the last closed tab.
The following commands can be used to switch between tabs:
- C-x t o
C-TAB Switch to the next tab. If you repeat this command, it cycles through all the tabs on the selected frame. With a positive numeric argument
n, it switches to the nextnth tab; with a negative argument -n, it switches back to the previousnth tab.- S-C-TAB
Switch to the previous tab. With a positive numeric argument
n, it switches to the previousnth tab; with a negative argument -n, it switches back to the nextnth tab.- C-x t RET
tabnameRET Switch to the tab by its name, with completion on all tab names. Default values are tab names sorted by recency, so you can use M-n (
next-history-element) to get the name of the last visited tab, the second last, and so on.modifier-tabnumberSwitch to the tab by its number. After customizing the variable
tab-bar-select-tab-modifiersto specify amodifierkey, you can select a tab by its ordinal number using the specified modifier in combination with the tab number to select. To display the tab number alongside the tab name, you can customize another variabletab-bar-tab-hints. This will help you to decide what key to press to select the tab by its number.modifier-0Switch to the recent tab. The key combination is the modifier key defined by
tab-bar-select-tab-modifiersand the key 0. With a numeric argumentn, switch to thenth recent tab.
The following commands can be used to operate on tabs:
- C-x t r
tabnameRET Rename the current tab to
tabname. You can control the programmatic name given to a tab by default by customizing the variabletab-bar-tab-name-function.- C-x t m
Move the current tab
npositions to the right with a positive numeric argumentn. With a negative argument -n, move the current tabnpositions to the left.
You can enable tab-bar-history-mode to remember window configurations used in every tab, and restore them.
- tab-bar-history-back
- Restore a previous window configuration used in the current tab. This navigates back in the history of window configurations.
- tab-bar-history-forward
- Cancel restoration of the previous window configuration. This navigates forward in the history of window configurations.
Next: Dialog Boxes, Previous: Tool Bars, Up: Frames [Contents][Index]