ZapMarks

November 1, 2024 ยท View on GitHub

Quick access to your most-used command-line bookmarks for Zsh

Screenshot 2024-10-13 at 11 09 56

ZapMarks is a powerful Zsh plugin that streamlines your command-line workflow by providing instant access to frequently used commands through an intuitive bookmark system.

โœจ Features

  • ๐Ÿ” Smart Search: Fuzzy search through your bookmarked commands
  • ๐Ÿ‘€ Command Preview: See command details before execution
  • โšก๏ธ Quick Add: Bookmark new commands directly from the terminal
  • ๐Ÿ›  Easy Management: Edit bookmarks with your preferred editor
  • ๐Ÿš€ High Performance: Optimized performance using fzf and jq

๐Ÿš€ Quick Start

bash -c "$(curl -fsSL https://raw.githubusercontent.com/iliutaadrian/zapmarks/main/scripts/install.sh)"

After installation, restart your terminal or run:

source ~/.zshrc

๐Ÿ“‹ Prerequisites

Before installing, ensure you have:

  • Zsh shell
  • fzf - Command-line fuzzy finder
  • jq - Lightweight command-line JSON processor

๐Ÿ’ป Installation

The automated installation script will:

  1. Clone the repository to the appropriate location
  2. Configure your Zsh setup
  3. Install the default bookmarks file

Option 2: Manual Installation

  1. Clone the repository:

    git clone https://github.com/iliutaadrian/zapmarks.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zapmarks
    
  2. Run the installation script:

    ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zapmarks/scripts/install.sh
    
  3. Add the plugin to your .zshrc:

    plugins=(... zapmarks)
    

๐ŸŽฏ Usage

Basic Commands

CommandDescription
CTR+BOpen the bookmark fuzzy finder
zapmarks-addAdd a new bookmark
zapmarks-editEdit bookmarks file

Example Workflow

  1. Save a frequently used command:

    zapmarks-add
    # Follow the prompts to add your command
    
  2. Press Alt+B to access your bookmarks

  3. Type to fuzzy search through your commands

  4. Press Enter to execute the selected command

๐Ÿ“ Configuration

ZapMarks stores its configuration in ~/.zapmarks.json. The file structure is:

{
  "bookmarks": [
    {
      "command": "git status",
      "description": "Check git status",
      "tags": ["git", "status"]
    }
  ]
}

๐Ÿ™ Acknowledgments

  • fzf for the amazing fuzzy finder
  • jq for JSON processing
  • Oh My Zsh for the plugin infrastructure