4 releases

0.1.7 Nov 7, 2023
0.1.6 Nov 2, 2023
0.1.4 May 5, 2023
0.1.0 May 2, 2023

#379 in Filesystem

24 downloads per month

CC0 license

14KB
273 lines

tabs.kak

View open buffers in status line, like tabs, and navigate between them quickly.

Demo

asciicast

Keybindings

The recommended key bindings can be set by calling tabs-recommended-keys:

define-command tabs-recommended-keys -docstring "set the recommended kak-tabs bindings" %{
  map global normal q b
  map global normal Q B
  map global normal b ': enter-user-mode tabs<ret>' -docstring 'tabs'
  map global normal B ': enter-user-mode -lock tabs<ret>' -docstring 'tabs (lock)'
}

Within the tabs mode, the keybindings are as follows:

a:(alternate)      return to the previously focused buffer
h:(previous)       navigate to the buffer on the left
l:(next)           navigate to the buffer on the right
s:   (*scratch*)      open the *scratch* buffer
u:   (*debug*)        open the *debug* buffer
H:(drag left)      swap this buffer to the left
L:(drag right)     swap this buffer to the right
d:   (delete current) delete the current buffer

Configuration

Example Configuration

set-option global tabs_modelinefmt '%val{cursor_line}:%val{cursor_char_column} {{mode_info}} '
set-option global tabs_options --minified

Options

  • tabs_modelinefmt: when set to a modelinefmt string, it is placed in the space preceding the tabs

  • tabs_options: a list of switches that affect tabs' appearance.

    • --minified
      • this will cause tabs to show as little of their paths as possible while still being unique. For example, if the currently open buffers are
        projects/1/src/main.rs projects/2/src/main.rs projects/2/Cargo.toml
        
        then the rendered tabs will be
        | 1/src/main.rs | 2/src/main.rs | Cargo.toml |
        
        because these are the smallest unique suffixes of each buffer.

Installation

  1. Install the rc/tabs.kak so your kakoune instance auto-loads it.
  2. Install the kak-tabs rust crate.

TODO


Originally inspired by Delapouite's kakoune-buffers.

Warning This plugin is incompatible with powerline.kak, see here for why.

Dependencies

~1.3–2MB
~37K SLoC