fish_skill
- Shell
0
GitHub Stars
1
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill trentshaines/dotfiles --skill fish- SKILL.md4.2 KB
Overview
This skill helps configure and extend the fish shell for daily use, focusing on aliases, functions, keybindings, and integrations. It assumes fish is the primary shell and directs changes to fish configuration files and function directories. The content emphasizes practical, repeatable steps for editing, reloading, and organizing fish configuration.
How this skill works
It inspects and edits the primary fish files: ~/.config/fish/config.fish for global settings and sections, ~/.config/fish/functions/*.fish for one-function-per-file organization, and ~/.config/fish/conf.d/local.fish for local overrides. It shows how to add aliases and functions, configure vi mode and cursor shapes, manage plugins with fisher, and wire integrations like starship, zoxide, fzf, tmux, and pyenv. It also explains common commands for reloading and environment management.
When to use it
- When adding or changing aliases or functions for daily workflows.
- When modifying shell behavior like keybindings, vi mode, or cursor shapes.
- When installing or updating fish plugins via fisher.
- When integrating starship, fzf, zoxide, tmux, or language shims into fish.
- When moving configuration from bash/zsh to fish or organizing config files.
Best practices
- Keep aliases in the Aliases section of ~/.config/fish/config.fish for a single source of truth.
- Store each reusable function in its own file under ~/.config/fish/functions/ so fish auto-loads it.
- Put machine-specific changes in ~/.config/fish/conf.d/local.fish to avoid committing secrets.
- Use set -gx for environment variables and fish_add_path or set PATH for PATH changes.
- Use fisher for plugin management and run fisher update periodically.
Example use cases
- Add an alias: alias ll='eza -l' by editing the Aliases section in config.fish.
- Create a project-aware tmux session function by adding ~/.config/fish/functions/tns.fish.
- Enable vi keybindings and set cursor shapes with fish_vi_key_bindings and set -g fish_cursor_*.
- Install nvm plugin: fisher install jorgebucaran/nvm.fish and initialize it in config.fish.
- Quickly reload configuration after edits with: source ~/.config/fish/config.fish.
FAQ
Create a file named ~/.config/fish/functions/funcname.fish with function funcname ... end. Fish will auto-load it.
How do I persist environment variables and PATH?
Use set -gx VAR value for env vars and fish_add_path or set -gx PATH "/new/path" $PATH for PATH changes in config.fish.
How do I reload my fish config after changes?
Run source ~/.config/fish/config.fish or open a new terminal session.