TMUX Easymotion

June 3, 2026 ยท View on GitHub

Tests

Note

๐Ÿ“ข Active Development

The master branch may include breaking changes. Please use a tagged version for stability.

demo

Features

  • Cross-pane jumping - Jump between any visible pane in the same window
  • Two search modes - 1-char (s) and 2-char (s2, leap.nvim style)
  • CJK support - Proper handling of wide characters
  • Smartsign - Match shifted symbols (e.g., 1 matches !)
  • Distance-based hints - Closer matches get shorter hints

Installation

Add plugin to the list of TPM plugins in ~/.tmux.conf:

set -g @plugin 'ddzero2c/tmux-easymotion#v1.3.0'
set -g @easymotion-s 's'

Press prefix + I to install

For development version: Use set -g @plugin 'ddzero2c/tmux-easymotion' (master branch, may be unstable)

Configuration

OptionDefaultDescription
@easymotion-ss1-character search key binding
@easymotion-s2(none)2-character search key binding (leap.nvim style)
@easymotion-hintsasdghklqwertyuiopzxcvbnmfj;Characters used for hints
@easymotion-case-sensitivefalseCase-sensitive search
@easymotion-smartsignfalseMatch shifted symbols (e.g., 1 matches !)
@easymotion-copy-mode-no-prefixfalseBind keys directly in copy mode (no prefix required)
@easymotion-vertical-borderโ”‚Vertical border character
@easymotion-horizontal-borderโ”€Horizontal border character
@easymotion-use-cursesfalseUse curses instead of ANSI sequences
@easymotion-hint1-fg1;31SGR color code for the first hint character (bold red)
@easymotion-hint2-fg1;32SGR color code for the second hint character (bold green)
@easymotion-dim2SGR color code for the dimmed background text
@easymotion-debugfalseDebug logging to ~/easymotion.log
@easymotion-perffalsePerformance logging to ~/easymotion.log

Example configuration:

set -g @easymotion-s 's'
set -g @easymotion-s2 'f'
set -g @easymotion-hints 'asdfghjkl;'
set -g @easymotion-case-sensitive 'true'
set -g @easymotion-smartsign 'true'

# Custom colors (standard SGR codes: "1" bold, "4" underline,
# "31"-"37" / "90"-"97" basic colors, "38;5;N" for 256-color)
set -g @easymotion-hint1-fg '1;38;5;208'  # bold orange
set -g @easymotion-hint2-fg '1;38;5;33'   # bold blue
set -g @easymotion-dim '2;90'             # dim grey

Vim-like Configuration

set-window-option -g mode-keys vi
bind-key -T copy-mode-vi C-v send-keys -X begin-selection \; send-keys -X rectangle-toggle;
bind-key -T copy-mode-vi v send-keys -X begin-selection;
bind-key -T copy-mode-vi V send-keys -X select-line;

Usage

Copy a word: prefix + s โ†’ type character โ†’ select hint โ†’ press ve and y to copy

Paste: prefix + ] to paste

Development

# Install development dependencies
pip install -r requirements-dev.txt

# Run tests
pytest test_easymotion.py -v --cache-clear

Inspired by