fisherman is a fish-shell plugin manager.
Translations: 日本語, 繁體中文, 简体中文, 한국어, Русский, Português, Türkçe, Español, Français, Català, Deutsch, فارسی.
curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs https://git.io/fisher
Install a plugin.
fisher z
Install several plugins concurrently.
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
Yes!
You are welcome to join the organization. Just ask and someone will send you an invite.
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, add the following to your ~/.config/fish/config.fish file:
set -U fish_path ~/my/path
for file in $fish_path/conf.d/*.fish
builtin source $file 2> /dev/null
end
set fish_function_path $fish_path/functions $fish_function_path
set fish_complete_path $fish_path/completions $fish_complete_path
By default, fisherman will create symlinks to plugin files.
To have fisherman copy files:
set -U fisher_copy true
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.
A plugin is:
-
a directory with one or more .fish functions at the root level of the project or inside a functions/ directory
-
a theme or prompt: a fish_prompt.fish and/or fish_right_prompt.fish
-
a snippet: one or more .fish files inside a conf.d/ directory, run by fish at the start of the session
You can use fishkit to help you scaffold out a new project from scratch.
Create a new fishfile at the root level of your project and write the plugin URL like so github.com/owner/repo.
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
If you don't have a GitHub API token, you can generate one from account settings