mirror of
https://github.com/jorgebucaran/fisher
synced 2024-10-09 09:36:53 +02:00
116 lines
4.3 KiB
Markdown
116 lines
4.3 KiB
Markdown
fisher-faq(7) -- Frequently Asked Questions
|
|
===========================================
|
|
|
|
## SYNOPSIS
|
|
|
|
This document attempts to answer some of Fisherman most frequently asked questions. Feel free to create a new issue in the Fisherman issue tracker if your question is not answered here.
|
|
|
|
### What is Fisherman?
|
|
|
|
Fisherman is a plugin manager for fish that lets you share and reuse code, prompts and configurations easily.
|
|
|
|
### What do I need to know to use Fisherman?
|
|
|
|
Nothing. You can continue using your shell as usual. When you are ready to learn more just type `fisher help` or `fisher help tour`.
|
|
|
|
### How do I access the documentation?
|
|
|
|
Fisherman documentation is based in UNIX `man(1)` pages. For basic usage and command enter `fisher help`. For help about a specific *command*, enter `fisher help <command>`. The following guides are also available:
|
|
|
|
fisher help `faq`: Fisherman FAQ<br>
|
|
fisher help `tour`: Fisherman Tour<br>
|
|
fisher help `config`: Fisherman Configuration<br>
|
|
fisher help `plugins`: Creating Fisherman Plugins<br>
|
|
fisher help `commands`: Creating Fisherman Commands<br>
|
|
fisher help `fishfile`: Fishfile Format<br>
|
|
|
|
### What are Fisherman plugins?
|
|
|
|
Plugins are written in fish and extend the shell core functionality, run initialization code, add completions or documentations to other commands, etc. See `fisher help plugins`.
|
|
|
|
Plugins may list any number of dependencies to other plugins using a *fishfile*.
|
|
|
|
### What is a Fishfile?
|
|
|
|
A plain text file that lists what plugins you have installed or a plugin's dependencies to other plugins.
|
|
|
|
Fishfiles let you share plugin configurations across multiple installations, allow plugins to declare dependencies, and prevent information loss in case of system failure. See also `fisher help fishfile`.
|
|
|
|
### What kind of Fisherman plugins are there?
|
|
|
|
There is no technical distinction between plugins, themes, commands, etc., but there is a *conceptual* difference.
|
|
|
|
* `Standalone Utilities`: Plugins that define one or more functions, meant to be used at the command line.
|
|
|
|
* `Prompts / Themes`: Plugins that modify the appearance of the fish prompt by defining a `fish_prompt` and / or `fish_right_prompt` functions.
|
|
|
|
* `Extension Commands`: Plugins that extend Fisherman default commands. An extension plugin must define one or more functions like `fisher_<my_command>`. For specific information about commands, see `fisher help commands` and then return to this guide.
|
|
|
|
* `Configuration Plugins`: Plugins that include one or more `my_plugin.config.fish` files. Files that follow this convention are evaluated at the start of the session.
|
|
|
|
See `fisher help plugins` and `fisher help commands`.
|
|
|
|
### Does Fisherman support Oh My Fish plugins and themes?
|
|
|
|
Yes. To install either a plugin or theme use their URL:
|
|
|
|
```
|
|
fisher install omf/plugin-{rbenv,tab} omf/theme-scorphish
|
|
```
|
|
|
|
You can use the same mechanism to install any valid plugin from any given URL. See also `Compatibility` in `fisher help tour`.
|
|
|
|
### What does Fisherman do exactly every time I create a new shell session?
|
|
|
|
Essentially, add Fisherman functions and completions to the `$fish_{function,complete}_path` and evaluate files that follow the convention `*.config.fish`.
|
|
|
|
```fish
|
|
set fish_function_path {$fisher_config,$fisher_home}/functions $fish_function_path
|
|
set fish_complete_path {$fisher_config,$fisher_home}/completions $fish_complete_path
|
|
|
|
for file in $fisher_config/conf.d/*.config.fish
|
|
source $file
|
|
end
|
|
```
|
|
|
|
See `$fisher_home/config.fish` for the full code.
|
|
|
|
### How is Fisherman faster than Oh My Fish and other systems?
|
|
|
|
Fisherman ameliorates the slow shell start problem using a flat dependency tree instead of loading a directory hierarchy per plugin. This also means that Fisherman performance does not decline depending on the number of plugins installed. See also `Flat Tree` in `fisher help tour`.
|
|
|
|
### How can I upgrade from an existing Oh My Fish or Wahoo installation?
|
|
|
|
Remove the `$OMF_PATH` and `$OMF_CONFIG` variables from your `config.fish`.
|
|
|
|
Backup dotfiles and other sensitive data.
|
|
|
|
```fish
|
|
rm -rf {$OMF_PATH,$OMF_CONFIG}
|
|
```
|
|
|
|
Install Fisherman.
|
|
|
|
```
|
|
curl -sL install.fisherman.sh | fish
|
|
```
|
|
|
|
### How do I use fish as my default shell?
|
|
|
|
Add Fish to `/etc/shells`:
|
|
|
|
```sh
|
|
echo "/usr/local/bin/fish" | sudo tee -a /etc/shells
|
|
```
|
|
|
|
Make Fish your default shell:
|
|
|
|
```sh
|
|
chsh -s /usr/local/bin/fish
|
|
```
|
|
|
|
To switch back to another shell.
|
|
|
|
```sh
|
|
chsh -s /bin/another/shell
|
|
```
|