c3172511e0
Fisherman was always writing its completion file to $fish_config/completions. This was incorrect behavior if $fish_path was set to a directory other than $fish_config (its default). Note that when using $fish_path to manage functions, completions and snippets, you opt out fish default locations which are handled for you by the shell and consequently are responsible for appending your custom $fish_path/functions and $fish_path/completions directories to $fish_function_path and $fish_complete_path respectively, as well as sourcing snippets (.fish files under $fish_path/conf.d) on shell startup. |
||
---|---|---|
.travis.yml | ||
fisher.fish | ||
LICENSE.md | ||
README.md |
fisherman
The fish-shell plugin manager.
Translations: 日本語, 繁體中文, 简体中文, 한국어, Русский, Português, Türkçe, Español, Français, Català, Deutsch, فارسی.
Install
curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs https://git.io/fisher
Usage
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
FAQ
Is fisherman compatible with oh-my-fish themes and plugins?
Yes!
How can I contribute to fisherman?
You are welcome to join the organization. Just ask and someone will send you an invite.
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:
-
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
How do I create my own plugins?
You can use fishkit to help you scaffold out a new project from scratch.
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