
navi allows you to browse through cheatsheets (that you may write yourself or download from maintainers) and execute commands. Suggested values for arguments are dynamically displayed in a list.
It uses fzf, skim, or Alfred under the hood and it can be either used as a command or as a shell widget (à la Ctrl-R).
brew install naviBe sure to enable the GURU overlay.
emerge -a app-misc/navinix-env -iA nixpkgs.navicargo install --locked naviFor Windows users, using PowerShell
Install the package via choco
Create $env:USERPROFILE\AppData\Roaming\navi\config.yaml and override shell.command as per config_file_example.yaml
style:
tag:
color: cyan
comment:
color: grey
snippet:
color: white
shell:
command: powershell
Remark: Above example also adds custom colors for better readability in case you use standard blue for your Powershell
bash <(curl -sL https://raw.githubusercontent.com/denisidoro/navi/master/scripts/install)
# (optional) to set directories:
# BIN_DIR=/usr/local/bin bash <(curl -sL https://raw.githubusercontent.com/denisidoro/navi/master/scripts/install)$PATHgit clone https://github.com/denisidoro/navi ~/.navi
cd ~/.navi
make install
# (optional) to set the install directory:
# make BIN_DIR=/usr/local/bin installnavi supports environment variables at compile time that modify the behavior of the binary at runtime:
NAVI_PATH (directory path value): If the cheats directory in the user's directory does not exist, navi uses this path (if it exists), as a fallback location to look for cheat files. Use case: system-wide installed, shared used cheatsheets folder.NAVI_CONFIG (file path value): If the config.yaml file in the user's directory does not exist, navi uses this path (if it exists), as a fallback location to look for a configuration file. Use case: system-wide installed, shared used configuration file.You can find navi for more package managers by clicking on the image below:
Feel free to be the maintainer of navi for any package manager you'd like!
If you want to install it, add this line to your .bashrc-like file:
# bash
eval "$(navi widget bash)"
# zsh
eval "$(navi widget zsh)"
# fish
navi widget fish | source
# elvish
eval (navi widget elvish | slurp)By default, Ctrl+G is assigned to launching navi.
There's currently no way to customize the widget behavior out-of-the-box. If you want to change the keybinding or the navi flags used by the widget, please:
navi widget bash in your terminal.bashrc-like fileThere are multiple ways to use navi:
navi in the terminalnavi) and you can edit the command as you wish before executing itIn particular, check these instructions if you want to replicate what's shown in the demo above.
Running navi for the first time will help you download and manage cheatsheets.
You can also:
Cheatsheets are described in .cheat files that look like this:
% git, code
# Change branch
git checkout <branch>
$ branch: git branch | awk '{print $NF}'The full syntax and examples can be found here.
You can:
Please run the following command to read more about all possible options:
navi --helpIn addition, please check the /docs folder.
If you don't have access to a Unix shell at the moment and you want to live preview navi, head to this playground. It'll start a docker container with instructions for you to install and use the tool. Note: login required.
There are many similar projects out there (beavr, bro, cheat, cheat.sh, cmdmenu, eg, how2, howdoi and tldr, to name a few).
They are excellent projects, but navi remains unique in the following ways:
Navi is a character from The Legend of Zelda Ocarina of Time that provides Link with a variety of clues to help him solve puzzles and make progress in his quest.
Support the project and author: https://github.com/denisidoro/navi#motivation