All Projects β†’ jorgebucaran β†’ Fisher

jorgebucaran / Fisher

Licence: mit
A plugin manager for Fish.

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Fisher

Awsm.fish
A curation of prompts, plugins & other resources for Fish. 🐚
Stars: ✭ 2,641 (-50.97%)
Mutual labels:  fish, fish-plugin
fish-abbreviation-tips
πŸ’‘ Help you remembering your abbreviations
Stars: ✭ 155 (-97.12%)
Mutual labels:  fish, fish-plugin
fish-color-scheme-switcher
A fish shell 🐟 plugin to switch color schemes 🌈
Stars: ✭ 48 (-99.11%)
Mutual labels:  fish, fish-plugin
fish-exa
🐟 exa aliases for fish
Stars: ✭ 24 (-99.55%)
Mutual labels:  fish, fish-plugin
sponge
🧽 Clean fish history from typos automatically
Stars: ✭ 69 (-98.72%)
Mutual labels:  fish, fish-plugin
fish logo
🐠 Fish shell colorful ASCII-art logo
Stars: ✭ 82 (-98.48%)
Mutual labels:  fish, fish-plugin
Cod
cod is a completion daemon for bash/fish/zsh
Stars: ✭ 288 (-94.65%)
Mutual labels:  fish
Dotfiles
Configuration for Linux, Nix, i3, Kitty, Fish, Neovim and more
Stars: ✭ 379 (-92.96%)
Mutual labels:  fish
Dein.vim
⚑ Dark powered Vim/Neovim plugin manager
Stars: ✭ 3,117 (-42.13%)
Mutual labels:  plugin-manager
Fzf.fish
Augment your fish command line with fzf key bindings.
Stars: ✭ 255 (-95.27%)
Mutual labels:  fish
Bash Shortcuts Cheat Sheet
Useful shortcuts for bash/zsh
Stars: ✭ 452 (-91.61%)
Mutual labels:  fish
Tide
🌊 The ultimate Fish prompt.
Stars: ✭ 420 (-92.2%)
Mutual labels:  fish
Fish Nvm
nvm wrapper for fish-shell
Stars: ✭ 336 (-93.76%)
Mutual labels:  fish
Fake Flash.cn
flash.cnι’“ι±Όι‘΅οΌˆδΈ­ζ–‡+θ‹±ζ–‡οΌ‰
Stars: ✭ 305 (-94.34%)
Mutual labels:  fish
Dotfiles
paul's shell, git, etc config files. also homebrew, migration setup. good stuff.
Stars: ✭ 3,910 (-27.4%)
Mutual labels:  fish
Fishtape
100% pure-Fish test runner.
Stars: ✭ 283 (-94.75%)
Mutual labels:  fish
Packer.nvim
A use-package inspired plugin manager for Neovim. Uses native packages, supports Luarocks dependencies, written in Lua, allows for expressive config
Stars: ✭ 418 (-92.24%)
Mutual labels:  plugin-manager
Fundle
A minimalist package manager for fish shell
Stars: ✭ 274 (-94.91%)
Mutual labels:  fish
Dotfiles
Sway acid dark
Stars: ✭ 330 (-93.87%)
Mutual labels:  fish
Termux Style
Simple script to change color-schemes and fonts for Termux.
Stars: ✭ 400 (-92.57%)
Mutual labels:  fish

Fisher

A plugin manager for Fishβ€”the friendly interactive shell. Looking for plugins?

Manage functions, completions, bindings, and snippets from the command line. Extend your shell capabilities, change the look of your prompt and create repeatable configurations across different systems effortlessly.

  • 100% pure-Fishβ€”easy to contribute to or modify.
  • Blazing fast concurrent plugin downloads.
  • Zero configuration out of the box.
  • Oh My Fish! plugin support.

πŸ‘‹ Upgrading from Fisher 3.x or older?

Installation

curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher

Quickstart

You can install, update, and remove plugins interactively with Fisher, taking advantage of Fish tab completion and rich syntax highlighting.

Installing plugins

Install plugins using the install command followed by the path to the repository on GitHub.

fisher install ilancosman/tide

To get a specific version of a plugin add an @ symbol after the plugin name followed by a tag, branch, or commit.

fisher install jorgebucaran/[email protected]

You can install plugins from a local directory too.

fisher install ~/path/to/plugin

Fisher expands plugins into your Fish configuration directory by default, overwriting existing files. If you wish to change this behavior, set $fisher_path to your preferred location and put it in your function path (#640).

Listing plugins

List all the plugins that are currently installed using the list command.

$ fisher list
jorgebucaran/fisher
ilancosman/tide
jorgebucaran/[email protected]
/home/jb/path/to/plugin

The list command also accepts a regular expression to filter the output.

$ fisher list \^/
/home/jb/path/to/plugin

Updating plugins

The update command updates one or more plugins to their latest version.

fisher update jorgebucaran/fisher

Use just fisher update to update everything.

Removing plugins

Remove installed plugins using the remove command.

fisher remove jorgebucaran/[email protected]

You may want to remove everything, including Fisher.

fisher list | fisher remove

Using your fish_plugins file

Whenever you install or remove a plugin from the command line, Fisher will write down all the installed plugins plugins to $__fish_config_dir/fish_plugins. Adding this file to your dotfiles or version control is the easiest way to share your configuration across different systems.

You can also edit this file and run fisher update to commit changes:

nano $__fish_config_dir/fish_plugins
jorgebucaran/fisher
ilancosman/tide
jorgebucaran/[email protected]
+ PatrickF1/fzf.fish
- /home/jb/path/to/plugin
fisher update

That will install PatrickF1/fzf.fish, remove /home/jb/path/to/plugin, and update everything else.

Creating a plugin

A plugin can be any number of files in a functions, conf.d, and completions directory. Most plugins consist of a single function, or configuration snippet. This is what a typical plugin looks like.

ponyo
β”œβ”€β”€ completions
β”‚   └── ponyo.fish
β”œβ”€β”€ conf.d
β”‚   └── ponyo.fish
└── functions
    └── ponyo.fish

Non .fish files as well as directories inside those locations will be copied to $fisher_path under functions, conf.d, or completions respectively.

Event system

Plugins are notified as they are being installed, updated, or removed via Fish events.

--on-event functions must already be loaded when their event is emitted. Thus, you should put your event handlers in the conf.d directory.

# Defined in ponyo/conf.d/ponyo.fish

function _ponyo_install --on-event ponyo_install
    # Set universal variables, create bindings, and other initialization logic.
end

function _ponyo_update --on-event ponyo_update
    # Migrate resources, print warnings, and other update logic.
end

function _ponyo_uninstall --on-event ponyo_uninstall
    # Erase "private" functions, variables, bindings, and other uninstall logic.
end

Acknowledgments

Fisher started out in 2016 by @jorgebucaran as a shell configuration manager for Fish. We had a lot of help along the way. Oh My Fish laid the groundwork as the first popular Fish framework. @jethrokuan was particularly helpful during the first years. @PatrickF1's candid feedback has been invaluable time and again. Bootstrapping Fisher was originally @IlanCosman's idea. Thank you to all our contributors! <3

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].