Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. ZSH Plugins
  3. opp

opp

Shell

Adds Vim-like text object motions to Zsh for more efficient command-line editing.

GitHubGitHub
233 stars14 forks0 contributors

What is opp?

opp.zsh is a Zsh plugin that implements Vim's text object motions for the Zsh shell, enabling users to edit command-line text using familiar Vim keybindings like `ci"` (change inside quotes) or `daw` (delete a word). It solves the problem of inefficient text manipulation in Zsh by bringing Vim's powerful editing paradigms to the command line.

Target Audience

Zsh users who are familiar with Vim and want to apply Vim's text editing efficiency to their shell command-line editing.

Value Proposition

Developers choose opp.zsh because it seamlessly integrates Vim's text object motions into Zsh, reducing editing time and keystrokes. Its extensions like surround and textobj-between further enhance editing capabilities, making it a comprehensive tool for Vim enthusiasts in the shell.

Overview

Vim's text-objects-ish for zsh (obsolete for zsh-5.0.8)

Use Cases

Best For

  • Editing complex command-line arguments with quotes or brackets
  • Deleting or changing words or sections within shell commands quickly
  • Adding Vim-like surround functionality to Zsh command editing
  • Manipulating text between specific delimiters in the command line
  • Enhancing Zsh editing for users transitioning from Vim
  • Streamlining repetitive text operations in shell history or prompts

Not Ideal For

  • Users on zsh-5.0.8 or later, as the README states it's obsolete and native Zsh features provide similar functionality out of the box.
  • Zsh users with heavily customized vicmd keymaps, since opp.zsh overwrites bindings for c, d, g~, gu, gU, and y, potentially causing conflicts.
  • Projects requiring a fully maintained and feature-complete plugin, given the TODOs list missing operators like o_v and text objects like as/is.

Pros & Cons

Pros

Vim Text Objects

Implements familiar Vim motions like ci" for changing inside quotes and daw for deleting a word, making command-line editing more efficient for Vim users, as demonstrated in the README's examples.

Extension Support

Includes surround.zsh for surround.vim-like functionality and textobj-between.zsh for selecting between delimiters, enhancing editing capabilities beyond basic text objects.

Performance Optimization

Supports zcompiling via autoloading for faster loading, with detailed steps in the README on generating .zwc files to speed up shell startup.

Cons

Obsolete for Modern Zsh

The README explicitly warns it's obsolete for zsh-5.0.8 and greater, making it redundant and potentially unnecessary for users on updated systems with native features.

Invasive Keybinding Overwrites

Replaces vicmd keymap bindings without option to disable, which can break existing custom setups and requires users to manually manage conflicts, as noted in the README.

Incomplete Development

TODOs list missing features such as operators for visual modes and text objects like op/ip, indicating the plugin is not fully implemented and may lack polish.

Frequently Asked Questions

Quick Stats

Stars233
Forks14
Contributors0
Open Issues5
Last commit8 years ago
CreatedSince 2010

Tags

#shell-editing#zsh-plugin#editor-enhancement#text-objects#command-line#vim-keybindings

Built With

z
zsh

Included in

ZSH Plugins17.6k
Auto-fetched 19 hours ago

Related Projects

zoxidezoxide

A smarter cd command. Supports all major shells.

Stars38,203
Forks853
Last commit4 days ago
zsh-autosuggestionszsh-autosuggestions

Fish-like autosuggestions for zsh

Stars35,900
Forks1,937
Last commit1 year ago
zsh-syntax-highlightingzsh-syntax-highlighting

Fish shell like syntax highlighting for Zsh.

Stars22,878
Forks1,376
Last commit5 months ago
autojumpautojump

A cd command that learns - easily navigate directories from the command line

Stars16,952
Forks708
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub