tabbar

Homepage: https://github.com/dholm/tabbar

Author: David Ponce

Updated:

Summary

Display a tab bar in the header line

Commentary

This library provides the Tabbar global minor mode to display a tab
bar in the header line of Emacs 21 and later versions.  You can use
the mouse to click on a tab and select it.  Also, three buttons are
displayed on the left side of the tab bar in this order: the
"home", "scroll left", and "scroll right" buttons.  The "home"
button is a general purpose button used to change something on the
tab bar.  The scroll left and scroll right buttons are used to
scroll tabs horizontally.  Tabs can be divided up into groups to
maintain several sets of tabs at the same time (see also the
chapter "Core" below for more details on tab grouping).  Only one
group is displayed on the tab bar, and the "home" button, for
example, can be used to navigate through the different groups, to
show different tab bars.

In a graphic environment, using the mouse is probably the preferred
way to work with the tab bar.  However, you can also use the tab
bar when Emacs is running on a terminal, so it is possible to use
commands to press special buttons, or to navigate cyclically
through tabs.

These commands, and default keyboard shortcuts, are provided:

`tabbar-mode'
    Toggle the Tabbar global minor mode.  When enabled a tab bar is
    displayed in the header line.

`tabbar-local-mode'         (C-c )
    Toggle the Tabbar-Local minor mode.  Provided the global minor
    mode is turned on, the tab bar becomes local in the current
    buffer when the local minor mode is enabled.  This permits to
    see the tab bar in a buffer where the header line is already
    used by another mode (like `Info-mode' for example).

`tabbar-mwheel-mode'
    Toggle the Tabbar-Mwheel global minor mode.  When enabled you
    can use the mouse wheel to navigate through tabs of groups.

`tabbar-press-home'         (C-c )
`tabbar-press-scroll-left'  (C-c )
`tabbar-press-scroll-right' (C-c )
    Simulate a mouse-1 click on respectively the "home", "scroll
    left", and "scroll right" buttons.  A numeric prefix argument
    value of 2, or 3, respectively simulates a mouse-2, or mouse-3
    click.

`tabbar-backward'           (C-c )
`tabbar-forward'            (C-c )
    Are the basic commands to navigate cyclically through tabs or
    groups of tabs.  The cycle is controlled by the
    `tabbar-cycle-scope' option.  The default is to navigate
    through all tabs across all existing groups of tabs.  You can
    change the default behavior to navigate only through the tabs
    visible on the tab bar, or through groups of tabs only.  Or use
    the more specialized commands below.

`tabbar-backward-tab'
`tabbar-forward-tab'
    Navigate through the tabs visible on the tab bar.

`tabbar-backward-group'     (C-c )
`tabbar-forward-group'      (C-c )
    Navigate through existing groups of tabs.


Core
----

The content of the tab bar is represented by an internal data
structure: a tab set.  A tab set is a collection (group) of tabs,
identified by an unique name.  In a tab set, at any time, one and
only one tab is designated as selected within the tab set.

A tab is a simple data structure giving the value of the tab, and a
reference to its tab set container.  A tab value can be any Lisp
object.  Each tab object is guaranteed to be unique.

A tab set is displayed on the tab bar through a "view" defined by
the index of the leftmost tab shown.  Thus, it is possible to
scroll the tab bar horizontally by changing the start index of the
tab set view.

The visual representation of a tab bar is a list of valid
`header-line-format' template elements, one for each special
button, and for each tab found into a tab set "view".  When the
visual representation of a tab is required, the function specified
in the variable `tabbar-tab-label-function' is called to obtain it.
The visual representation of a special button is obtained by
calling the function specified in `tabbar-button-label-function',
which is passed a button name among `home', `scroll-left', or
`scroll-right'.  There are also options and faces to customize the
appearance of buttons and tabs (see the code for more details).

When the mouse is over a tab, the function specified in
`tabbar-help-on-tab-function' is called, which is passed the tab
and should return a help string to display.  When a tab is
selected, the function specified in `tabbar-select-tab-function' is
called, which is passed the tab and the event received.

Similarly, to control the behavior of the special buttons, the
following variables are available, for respectively the `home',
`scroll-left' and `scroll-right' value of `

Dependencies

Reverse dependencies