This is a fork of cheat, based on the develop branch.
Some features and bugfixes have been added which are not yet merged to upstream, such as CI testing and supporting multi-word values in EDITOR related environment variables.
cheat
allows you to create and view interactive cheatsheets on the
command-line. It was designed to help remind *nix system administrators of
options for commands that they use frequently, but not frequently enough to
remember.
The next time you're forced to disarm a nuclear weapon without consulting Google, you may run:
cheat tar
You will be presented with a cheatsheet resembling:
# To extract an uncompressed archive:
tar -xvf '/path/to/foo.tar'
# To extract a .gz archive:
tar -xzvf '/path/to/foo.tgz'
# To create a .gz archive:
tar -czvf '/path/to/foo.tgz' '/path/to/foo/'
# To extract a .bz2 archive:
tar -xjvf '/path/to/foo.tgz'
# To create a .bz2 archive:
tar -cjvf '/path/to/foo.tgz' '/path/to/foo/'
To see what cheatsheets are available, run cheat -l
.
Note that, while cheat
was designed primarily for *nix system administrators,
it is agnostic as to what content it stores. If you would like to use cheat
to store notes on your favorite cookie recipes, feel free.
It is recommended to install cheat
with pip
:
[sudo] pip install cheat
Other installation methods are available.
The value of cheat
is that it allows you to create your own cheatsheets - the
defaults are meant to serve only as a starting point, and can and should be
modified.
Cheatsheets are stored in the ~/.cheat/
directory, and are named on a
per-keyphrase basis. In other words, the content for the tar
cheatsheet lives
in the ~/.cheat/tar
file.
Provided that you have a CHEAT_EDITOR
, VISUAL
, or EDITOR
environment
variable set, you may edit cheatsheets with:
cheat -e foo
If the 'foo' cheatsheet already exists, it will be opened for editing. Otherwise, it will be created automatically.
After you've customized your cheatsheets, I urge you to track ~/.cheat/
along
with your dotfiles.
Personal cheatsheets are saved in the ~/.cheat
directory by default, but you
can specify a different default by exporting a DEFAULT_CHEAT_DIR
environment
variable:
export DEFAULT_CHEAT_DIR='/path/to/my/cheats'
You can additionally instruct cheat
to look for cheatsheets in other
directories by exporting a CHEATPATH
environment variable:
export CHEATPATH='/path/to/my/cheats'
You may, of course, append multiple directories to your CHEATPATH
:
export CHEATPATH="$CHEATPATH:/path/to/more/cheats"
You may view which directories are on your CHEATPATH
with cheat -d
.
cheat
can apply syntax highlighting to your cheatsheets if so desired. To
enable this feature, set a CHEATCOLORS
environment variable:
export CHEATCOLORS=true
Virtual environments and setuptools
can be used to develop cheat
:
Create a virtual environment with virtualenv:
$ virtualenv venv
Activate it:
$ source venv/bin/activate
Install cheat
in the venv in development mode:
$ python setup.py develop
Now cheat
can be run from inside the venv:
$ venv/bin/cheat