fisher/README.md
2018-09-09 17:16:41 +09:00

204 lines
4.4 KiB
Markdown

# [fisherman]
[![Build Status][travis-badge]][travis-link]
Fisherman is a [fish-shell] plugin manager.
## Install
```sh
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.
```sh
fisher edc/bass:master
```
Install a specific tag.
```sh
fisher edc/bass@1.2.0
```
Install a gist.
```
fisher https://gist.github.com/username/1f40e1c6e0551b2666b2
```
Install a local plugin.
```sh
fisher ~/path/to/my_plugin
```
Edit your [**fishfile**](#what-is-a-fishfile-and-how-do-i-use-it) and run `fisher` to commit changes, e.g. install missing plugins.
```sh
$EDITOR ~/.config/fish/fishfile
fisher
```
Show everything you've installed.
```ApacheConf
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
```
## Bootstrap
If you want to automate installing fisherman in a new system when it isn't already installed, add the following at the top of your ~/.config/fish/config.fish.
This will install fisherman and download all the plugins listed in your _fishfile_.
```fish
if not test -f ~/.config/fish/functions/fisher.fish
curl -sLo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisher
fisher
end
```
## 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](https://fisherman-wharf.herokuapp.com/) 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, add the following to your ~/.config/fish/config.fish file:
```fish
set -U fish_path ~/my/path
set fish_function_path $fish_path/functions $fish_function_path
set fish_complete_path $fish_path/completions $fish_complete_path
for file in $fish_path/conf.d/*.fish
builtin source $file 2> /dev/null
end
```
### How do I have fisherman copy plugin files instead of linking?
By default, fisherman will create symlinks to plugin files.
To have fisherman copy files:
```fish
set -U fisher_copy true
```
### 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 do I create my own plugins?
You can use [fishkit](https://github.com/fisherman/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:
```fish
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](https://blog.github.com/2013-05-16-personal-api-tokens/)
[slack-link]: https://fisherman-wharf.herokuapp.com
[slack-badge]: https://fisherman-wharf.herokuapp.com/badge.svg
[travis-link]: https://travis-ci.org/fisherman/fisherman
[travis-badge]: https://img.shields.io/travis/fisherman/fisherman.svg
[fish]: https://github.com/fish-shell/fish-shell
[fish-shell]: https://github.com/fish-shell/fish-shell
[fisherman]: https://fisherman.github.io