# easymotion/vim-easymotion

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/easymotion-vim-easymotion).**

7,743 stars · 365 forks · Vim script

## Links

- GitHub: https://github.com/easymotion/vim-easymotion
- Homepage: http://www.vim.org/scripts/script.php?script_id=3526
- awesome-repositories: https://awesome-repositories.com/repository/easymotion-vim-easymotion.md

## Topics

`vim` `vim-easymotion` `vim-plugin`

## Description

This is a navigation plugin for Vim that enables instant cursor movement by highlighting all possible jump targets in the visible text and assigning them unique keys. It functions as a search-to-jump extension, converting character or multi-character search patterns into single-key jumps to specific text targets.

The tool supports multibyte text navigation, allowing users to search for and jump to Japanese characters using alphabetical input patterns. It also employs intelligent case matching and symbol-based mapping to link numeric digits with their corresponding keyboard shift-symbols.

The plugin covers a range of motion capabilities, including cross-window navigation between split views, line-restricted movements, and the ability to repeat combined operator and jump sequences. It further optimizes movement through directional jump highlighting and multi-character sequence filtering to refine visible targets.

## Tags

### Development Tools & Productivity

- [Label-Based Text Jumping](https://awesome-repositories.com/f/development-tools-productivity/label-based-text-jumping.md) — Implements a system for jumping to precise on-screen text locations using unique keyboard labels. ([source](https://github.com/easymotion/vim-easymotion))
- [Vim Plugins](https://awesome-repositories.com/f/development-tools-productivity/vim-plugins.md) — Provides a high-performance navigation extension for the Vim text editor to speed up editing workflows.
- [Character Sequence Navigation](https://awesome-repositories.com/f/development-tools-productivity/character-sequence-navigation.md) — Implements keyboard-driven movement to specific character sequences within a text document to refine jump targets.
- [Cursor Navigation](https://awesome-repositories.com/f/development-tools-productivity/cursor-navigation.md) — Implements mechanisms for moving the editor cursor to specific characters or words across a file without repetitive keystrokes.
- [Motion-Enhanced Character Jumping](https://awesome-repositories.com/f/development-tools-productivity/label-based-text-jumping/motion-enhanced-character-jumping.md) — Replaces standard directional movements with high-speed, label-based jumps to precise locations in the visible text.
- [Multibyte Text Navigation](https://awesome-repositories.com/f/development-tools-productivity/multibyte-text-navigation.md) — Enables navigation and jumping to Japanese characters using alphabetical input patterns. ([source](https://github.com/easymotion/vim-easymotion))
- [Jump Target Highlighting](https://awesome-repositories.com/f/development-tools-productivity/search-match-highlighting/jump-target-highlighting.md) — Highlights all matching characters or sequences in the view and assigns each a unique key for navigation. ([source](https://github.com/easymotion/vim-easymotion))
- [Multi-Character Sequence Filtering](https://awesome-repositories.com/f/development-tools-productivity/search-match-highlighting/multi-character-sequence-filtering.md) — Refines visible jump targets by incrementally matching a sequence of two or more characters. ([source](https://github.com/easymotion/vim-easymotion))
- [Search-to-Jump Extensions](https://awesome-repositories.com/f/development-tools-productivity/search-to-jump-extensions.md) — Converts multi-character search patterns into single-key jumps to specific text targets within the editor.
- [Cross-Window Cursor Movement](https://awesome-repositories.com/f/development-tools-productivity/cross-window-cursor-movement.md) — Enables jumping the cursor between different split windows using a targeted character matching system.
- [Cross-Window Navigation](https://awesome-repositories.com/f/development-tools-productivity/cross-window-navigation.md) — Implements mechanisms for tracking and jumping to targets across multiple editor windows or split views. ([source](https://github.com/easymotion/vim-easymotion))
- [Prefix-Based Line Jumping](https://awesome-repositories.com/f/development-tools-productivity/iterative-jump-filtering/prefix-based-line-jumping.md) — Limits jump targets to the current line to reduce visual clutter and improve navigation focus. ([source](https://github.com/easymotion/vim-easymotion))
- [Keyboard Symbol Mapping](https://awesome-repositories.com/f/development-tools-productivity/keyboard-symbol-mapping.md) — Links numeric digits with their corresponding keyboard shift-symbols to allow searching for either via one input. ([source](https://github.com/easymotion/vim-easymotion))
- [Keyboard Symbol Mappings](https://awesome-repositories.com/f/development-tools-productivity/keyboard-symbol-mappings.md) — Links numeric digits to their corresponding keyboard shift-symbols to allow searching for either via a single input character.
- [Motion Repetition](https://awesome-repositories.com/f/development-tools-productivity/label-based-text-jumping/motion-enhanced-character-jumping/motion-repetition.md) — Provides the ability to re-execute the most recent jump motion without re-entering search characters. ([source](https://github.com/easymotion/vim-easymotion))

### Programming Languages & Runtimes

- [Target Coordinate Key-Mappings](https://awesome-repositories.com/f/programming-languages-runtimes/input-key-mappings/configurable-key-to-command-mappings/chorded-key-mappings/target-coordinate-key-mappings.md) — Maps a single keystroke to a specific screen coordinate by associating a target match with a unique character label.

### User Interface & Experience

- [Absolute Coordinate Jumps](https://awesome-repositories.com/f/user-interface-experience/cursor-management/pane-cursor-controllers/cursor-controllers/absolute-coordinate-jumps.md) — Calculates absolute row and column coordinates to enable instant cursor movement to highlighted targets across the buffer.
- [Pattern-Based](https://awesome-repositories.com/f/user-interface-experience/cursor-visualizations/occurrence-highlighting/pattern-based.md) — Highlights all occurrences of matching characters or sequences in the view and assigns them unique keys for navigation.
- [Input-Based Case Resolution](https://awesome-repositories.com/f/user-interface-experience/search-filters/case-sensitivity-toggles/input-based-case-resolution.md) — Applies smart-case and smart-sign logic to match lowercase letters, numerals, and symbols based on input. ([source](https://github.com/easymotion/vim-easymotion))
- [Smart-Case Matching](https://awesome-repositories.com/f/user-interface-experience/search-filters/case-sensitivity-toggles/smart-case-matching.md) — Supports intelligent case matching that expands results unless an uppercase character is explicitly typed. ([source](https://github.com/easymotion/vim-easymotion))

### Software Engineering & Architecture

- [Directional Target Highlighting](https://awesome-repositories.com/f/software-engineering-architecture/trie-data-structures/prefix-trie-filters/jump-target-filtering/directional-target-highlighting.md) — Offers jump-target highlighting for directional movement to avoid repetitive use of standard movement keys. ([source](https://github.com/easymotion/vim-easymotion))

### Web Development

- [Navigable Target Resolution](https://awesome-repositories.com/f/web-development/navigable-target-resolution.md) — Resolves targets across multiple split views to enable jumping between different editor windows in one motion.
