A plugin manager for Fish
Go to file
2016-06-10 08:47:24 -04:00
.travis.yml Fix install link in .travis.yml. 2016-06-01 07:16:16 +09:00
fisher.fish 2.10.0 2016-06-02 18:50:06 +09:00
LICENSE Create LICENSE 2016-05-27 23:06:37 +09:00
README.md Add FAQ for resolving github api token issues 2016-06-10 08:47:24 -04:00

Build Status Slack

fisherman

A plugin manager for fish.

Translations: 日本語, 简体中文, 한국어, Русский, Português, Español, Català, Deutsch, فارسی.

Install

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

Usage

Install a plugin.

fisher mono

Install some plugins.

fisher z fzf edc/bass omf/thefuck

Install a gist.

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

Install a local directory.

fisher ~/my/plugin

Edit your fishfile and run fisher to commit changes.

$EDITOR ~/.config/fish/fishfile
fisher

Show everything you've installed.

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

Show everything that's available.

fisher ls-remote

Update everything.

fisher up

Update some 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

What is the required fish version?

>=2.2.0.

For snippet support, upgrade to >=2.3.0 or append the following code to your ~/.config/fish/config.fish.

for file in ~/.config/fish/conf.d/*.fish
    source $file
end

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.

If you prefer, you can edit this file and run fisher to install missing plugins and dependencies.

What is a plugin?

A plugin is:

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

  2. a theme or prompt, i.e, a fish_prompt.fish, fish_right_prompt.fish or both files

  3. a snippet, i.e, one or more .fish files inside a directory named conf.d, evaluated 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 such as github.com/owner/repo.

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

If you are consistently seeing the following error while repeatedly running fisher ls-remote:

! I could not update the remote index.

This is most likely a problem with http://api.github.com/
or a connection timeout. If the problem persists, open an
issue in: <github.com/fisherman/fisherman/issues>

You may need to set the GITHUB_USER and GITHUB_TOKEN environment variables in your shell, to prevent github's search api from throttling/rejecting anonymous requests:

set -x GITHUB_USER your_username
set -x GITHUB_TOKEN your_github_api_token_for_fisherman

For instructions on creating an api token, see Step 1 of this help guide from Christopher Anderson