A plugin manager for Fish
Go to file
2017-03-03 09:56:52 -08:00
.travis.yml Fix travis. 2017-01-04 23:24:42 +09:00
fisher.fish Prevent additional remotes per plugin from affecting fishfile 2017-03-03 09:56:52 -08:00
LICENSE Create LICENSE 2016-05-27 23:06:37 +09:00
README.md Emphasize fishfile. 2017-02-18 15:33:14 +09:00

fisherman

Build Status Slack

A concurrent plugin manager for fish.

Translations: 日本語, 繁體中文, 简体中文, 한국어, Русский, Português, Türkçe, Español, Français, Català, Deutsch, فارسی.

Install

curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisher

Usage

Install a plugin.

fisher z

Install more plugins.

fisher fzf edc/bass omf/thefuck omf/theme-bobthefish

Install a specific branch.

fisher edc/bass:master

Install a specific tag.

fisher edc/bass@1.2.0

Install a gist.

fisher https://gist.github.com/username/1f40e1c6e0551b2666b2

Install a local plugin.

fisher ~/path/to/my_plugin

Edit your fishfile and run fisher to commit changes, e.g. install missing plugins.

$EDITOR ~/.config/fish/fishfile
fisher

Show everything you've installed.

fisher ls
@ my_plugin     # a local plugin
* bobthefish    # current theme
  bass
  fzf
  thefuck
  z

Show everything available to install.

fisher ls-remote

Show additional information about plugins:

fisher ls-remote --format="%name(%stars): %info [%url]\n"

Update everything.

fisher up

Update specific plugins.

fisher up bass z fzf

Remove plugins.

fisher rm thefuck

Remove all the plugins.

fisher ls | fisher rm

Get help.

fisher help z

FAQ

Is fisherman compatible with oh-my-fish themes and plugins?

Yes.

Where does fisherman put stuff?

The configuration and cache are saved to ~/.config/fisherman and ~/.cache/fisherman respectively.

The fishfile and plugins are saved to ~/.config/fish by default.

To customize this location:

set -U fish_path ~/my/path

What is a fishfile and how do I use it?

The fishfile lists what you've installed, and it's automatically updated as you install / remove plugins.

You can edit this file and run fisher to install missing plugins and dependencies.

What is a plugin?

A plugin is:

  1. a directory with one or more .fish functions at the root level of the project or inside a functions/ directory

  2. a theme or prompt: a fish_prompt.fish and/or fish_right_prompt.fish

  3. a snippet: one or more .fish files inside a conf.d/ directory, run by fish at the start of the session

How can I list plugins as dependencies to my plugin?

Create a new fishfile at the root level of your project and write the plugin URL like so github.com/owner/repo.

Why am I receiving errors when running fisher ls-remote?

You can export the GITHUB_USER and GITHUB_TOKEN environment variables in your shell, to prevent GitHub's search API from rejecting anonymous requests:

set -x GITHUB_USER your_username
set -x GITHUB_TOKEN your_github_api_token_for_fisherman