cheat.sh-0.0~git20220418.571377f/ 0000755 0000000 0000000 00000000000 14227330375 014221 5 ustar root root cheat.sh-0.0~git20220418.571377f/etc/ 0000755 0000000 0000000 00000000000 14227330375 014774 5 ustar root root cheat.sh-0.0~git20220418.571377f/etc/config.yaml 0000644 0000000 0000000 00000000070 14227330375 017122 0 ustar root root server:
address: "0.0.0.0"
cache:
type: redis
cheat.sh-0.0~git20220418.571377f/README.md 0000644 0000000 0000000 00000111510 14227330375 015477 0 ustar root root

Unified access to the best community driven cheat sheets repositories of the world.
Let's imagine for a moment that there is such a thing as an ideal cheat sheet.
What should it look like?
What features should it have?
* **Concise** — It should only contain the things you need, and nothing else.
* **Fast** — It should be possible to use it instantly.
* **Comprehensive** — It should contain answers for every possible question.
* **Universal** — It should be available everywhere, anytime, without any preparations.
* **Unobtrusive** — It should not distract you from your main task.
* **Tutoring** — It should help you to learn the subject.
* **Inconspicuous** — It should be possible to use it completely unnoticed.
Such a thing exists! It's easy to [install](#installation) and there's even [auto-complete](#tab-completion).
## Features
**cheat.sh**
* Has a simple curl/browser/editor interface.
* Covers 56 programming languages, several DBMSes, and more than 1000 most important UNIX/Linux commands.
* Provides access to the best community driven cheat sheets repositories in the world, on par with StackOverflow.
* Available everywhere, no installation needed, but can be installed for offline usage.
* Ultrafast, returns answers within 100 ms, as a rule.
* Has a convenient command line client, `cht.sh`, that is very advantageous and helpful, though not mandatory.
* Can be used directly from code editors, without opening a browser and not switching your mental context.
* Supports a special stealth mode where it can be used fully invisibly without ever touching a key and making sounds.
## Contents
* [Features](#features)
* [Usage](#usage)
* [Command line client, cht.sh](#command-line-client-chtsh)
* [Installation](#installation)
* [Client usage](#client-usage)
* [Tab-completion](#tab-completion)
- [Bash Tab completion](#bash-tab-completion)
- [ZSH Tab completion](#zsh-tab-completion)
* [Stealth mode](#stealth-mode)
* [Windows command line client](#windows-command-line-client)
* [Self-Hosting](#self-hosting)
* [Docker](#docker)
* [Editors integration](#editors-integration)
* [Vim](#vim)
* [Emacs](#emacs)
* [Visual Studio Code](#visual-studio-code)
* [Sublime](#sublime)
* [IntelliJ IDEA](#intellij-idea)
* [QT Creator](#qtcreator)
* [Special pages](#special-pages)
* [Search](#search)
* [Programming languages cheat sheets](#programming-languages-cheat-sheets)
* [Cheat sheets sources](#cheat-sheets-sources)
* [How to contribute](#how-to-contribute)
* [How to edit a cheat sheet](#how-to-edit-a-cheat-sheet)
* [How to add a cheat sheet](#how-to-add-a-cheat-sheet)
* [How to add a cheat sheet repository](#how-to-add-a-cheat-sheet-repository)
## Usage
To get a cheat sheet for a UNIX/Linux command from a command line, query the service using `curl` or any other HTTP/HTTPS client
specifying the name of the command in the query:
```
curl cheat.sh/tar
curl cht.sh/curl
curl https://cheat.sh/rsync
curl https://cht.sh/tr
```
As you can see, you can use both HTTPS and HTTP to access the service, and both the long (cheat.sh) and the short (cht.sh) service names.
Here `tar`, `curl`, `rsync`, and `tr` are names of the UNIX/Linux commands you want to get cheat sheets for.
If you don't know the name of the command you need, you can search for it using the `~KEYWORD` notation.
For example, to see how you can make `snapshots` of a filesystem/volume/something else:
```
curl cht.sh/~snapshot
```
The programming language cheat sheets are located in special namespaces dedicated to them.
```
curl cht.sh/go/Pointers
curl cht.sh/scala/Functions
curl cht.sh/python/lambda
```
To get the list of available programming language cheat sheets, use the special query `:list`:
```
curl cht.sh/go/:list
```
Almost each programming language has a special page named `:learn`
that describes the language basics (that's a direct mapping from the *"Learn X in Y"* project).
It could be a good starting point if you've just started learning a language.
If there is no cheat sheet for a programming language query (and it is almost always the case),
it is generated on the fly, based on available cheat sheets and answers on StackOverflow.
Of course, there is no guarantee that the returned cheat sheet will be a 100% hit, but it is almost always exactly what you are looking for.
Try these (and your own) queries to get the impression of that, what the answers look like:
```
curl cht.sh/go/reverse+a+list
curl cht.sh/python/random+list+elements
curl cht.sh/js/parse+json
curl cht.sh/lua/merge+tables
curl cht.sh/clojure/variadic+function
```
If you don't like an answer for your queries, you can pick another one. For that, repeat the query with an additional parameter `/1`, `/2` etc. appended:
```
curl cht.sh/python/random+string
curl cht.sh/python/random+string/1
curl cht.sh/python/random+string/2
```
Cheat sheets are formatted as code of the queried programming language (at least we are trying our best to do so)
so they can be pasted into a program in this language directly. Text comments, if there are any, are formatted according to the language syntax.
```lua
$ curl cht.sh/lua/table+keys
-- lua: retrieve list of keys in a table
local keyset={}
local n=0
for k,v in pairs(tab) do
n=n+1
keyset[n]=k
end
--[[
[ Note that you cannot guarantee any order in keyset. If you want the
[ keys in sorted order, then sort keyset with table.sort(keyset).
[
[ [lhf] [so/q/12674345] [cc by-sa 3.0]
]]
```
If you don't need text comments in the answer, you can eliminate them
using a special option `\?Q`:
```lua
$ curl cht.sh/lua/table+keys\?Q
local keyset={}
local n=0
for k,v in pairs(tab) do
n=n+1
keyset[n]=k
end
```
And if you don't need syntax highlighting, switch it off using `\?T`.
You can combine the options together:
```
curl cht.sh/go/reverse+a+list\?Q
curl cht.sh/python/random+list+elements\?Q
curl cht.sh/js/parse+json\?Q
curl cht.sh/lua/merge+tables\?QT
curl cht.sh/clojure/variadic+function\?QT
```
Full list of all options described below and in `/:help`.
Try your own queries. Follow these rules:
1. Try to be more specific (`/python/append+file` is better than `/python/file` and `/python/append`).
2. Ask practical question if possible (yet theoretical question are possible too).
3. Ask programming language questions only; specify the name of the programming language as the section name.
4. Separate words with `+` instead of spaces.
5. Do not use special characters, they are ignored anyway.
6. If you want to eliminate cheat sheets containing some word, add it to the query with `+-`: `python/multiply+matrices+-numpy`
Read more about the programming languages queries below.
----
## Command line client, cht.sh
The cheat.sh service has its own command line client (`cht.sh`) that
has several useful features compared to querying the service directly with `curl`:
* Special shell mode with a persistent queries context and readline support.
* Queries history.
* Clipboard integration.
* Tab completion support for shells (bash, fish, zsh).
* Stealth mode.
### Installation
To install the client:
```bash
PATH_DIR="$HOME/bin" # or another directory on your $PATH
mkdir -p "$PATH_DIR"
curl https://cht.sh/:cht.sh > "$PATH_DIR/cht.sh"
chmod +x "$PATH_DIR/cht.sh"
```
or to install it globally (for all users):
```bash
curl -s https://cht.sh/:cht.sh | sudo tee /usr/local/bin/cht.sh && sudo chmod +x /usr/local/bin/cht.sh
```
Note: The package "rlwrap" is a required dependency to run in shell mode. Install this using `sudo apt install rlwrap`
### Client usage
Now, you can use `cht.sh` instead of `curl`, and write your queries in more natural way,
with spaces instead of `+`:
```
$ cht.sh go reverse a list
$ cht.sh python random list elements
$ cht.sh js parse json
```
It is even more convenient to start the client in a special shell mode:
```
$ cht.sh --shell
cht.sh> go reverse a list
```
If all your queries are about the same language, you can change the context
and spare repeating the programming language name:
```
$ cht.sh --shell
cht.sh> cd go
cht.sh/go> reverse a list
```
or even start the client in this context:
```
$ cht.sh --shell go
cht.sh/go> reverse a list
...
cht.sh/go> join a list
...
```
If you want to change the context, you can do it with the `cd` command,
or if you want do a single query for some other language, just prepend it with `/`:
```
$ cht.sh --shell go
...
cht.sh/go> /python dictionary comprehension
...
```
If you want to copy the last answer into the clipboard, you can
use the `c` (`copy`) command, or `C` (`ccopy`, without comments).
```
cht.sh/python> append file
# python - How do you append to a file?
with open("test.txt", "a") as myfile:
myfile.write("appended text")
cht.sh/python> C
copy: 2 lines copied to the selection
```
Type `help` for other internal `cht.sh` commands.
```
cht.sh> help
help - show this help
hush - do not show the 'help' string at start anymore
cd LANG - change the language context
copy - copy the last answer in the clipboard (aliases: yank, y, c)
ccopy - copy the last answer w/o comments (cut comments; aliases: cc, Y, C)
exit - exit the cheat shell (aliases: quit, ^D)
id [ID] - set/show an unique session id ("reset" to reset, "remove" to remove)
stealth - stealth mode (automatic queries for selected text)
update - self update (only if the scriptfile is writeable)
version - show current cht.sh version
/:help - service help
QUERY - space separated query staring (examples are below)
cht.sh> python zip list
cht.sh/python> zip list
cht.sh/go> /python zip list
```
The `cht.sh` client has its configuration file which is located at `~/.cht.sh/cht.sh.conf`
(location of the file can be overridden by the environment variable `CHTSH_CONF`).
Use it to specify query options that you would use with each query.
For example, to switch syntax highlighting off create the file with the following
content:
```bash
CHTSH_QUERY_OPTIONS="T"
```
Or if you want to use a special syntax highlighting theme:
```bash
CHTSH_QUERY_OPTIONS="style=native"
```
(`curl cht.sh/:styles-demo` to see all supported styles).
Other cht.sh configuration parameters:
```bash
CHTSH_CURL_OPTIONS="-A curl" # curl options used for cht.sh queries
CHTSH_URL=https://cht.sh # URL of the cheat.sh server
```
### Tab completion
#### Bash Tab completion
To activate tab completion support for `cht.sh`, add the `:bash_completion` script to your `~/.bashrc`:
```bash
curl https://cheat.sh/:bash_completion > ~/.bash.d/cht.sh
. ~/.bash.d/cht.sh
# and add . ~/.bash.d/cht.sh to ~/.bashrc
```
#### ZSH Tab completion
To activate tab completion support for `cht.sh`, add the `:zsh` script to the *fpath* in your `~/.zshrc`:
```zsh
curl https://cheat.sh/:zsh > ~/.zsh.d/_cht
echo 'fpath=(~/.zsh.d/ $fpath)' >> ~/.zshrc
# Open a new shell to load the plugin
```
----
### Stealth mode
Being used fully unnoticed is one of the most important property of any cheat sheet.
cheat.sh can be used completely unnoticed too. The cheat.sh client, `cht.sh`, has
a special mode, called **stealth mode**. Using that, you don't even need to touch your
keyboard to open a cheat sheet.
In this mode, as soon as you select some text with the mouse (and thus adding it
into the selection buffer of X Window System or into the clipboard) it's used
as a query string for cheat.sh, and the correspondent cheat sheet is automatically shown.
Let's imagine, that you are having an online interview, where your interviewer asks you
some questions using a shared document (say Google Docs) and you are supposed
to write your coding answers there (it's possible too that you'll type in the questions
on your own, just to show to the interviewer that you've heard it right).
When using the stealth mode of `cht.sh`, the only thing you need to do in order to see
a cheat sheet for some question, is to select the question using the mouse.
If you don't want any text in the answers and the only thing you need is code,
use the `Q` option when starting the stealth mode.
```
You: Hi! | $ cht.sh --shell python
She: Hi! | cht.sh/python> stealth Q
She: Are you ready for a small interview? | stealth: you are in the stealth mode; select any text
She: Just a couple of questions | stealth: selections longer than 5 words are ignored
She: We will talk about python | stealth: query arguments: ?Q
She: Let's start from something simple. | stealth: use ^C to leave this mode
She: Do you know how to reverse a list in python? |
You: Sure |
You: (selecting "reverse a list") | stealth: reverse a list
| reverse_lst = lst[::-1]
You: lst[::-1]? |
She: Good. |
She: Do you know how to chain a list of lists? |
You: (selecting "chain a list of lists") | stealth: chain a list of lists
| import itertools
| a = [["a","b"], ["c"]]
| print list(itertools.chain.from_iterable(a))
You: May I use external modules? |
She: What module do you want to use? |
You: itertools |
She: Yes, you may use it |
You: Ok, then: |
You: itertools.chain.from_iterable(a) |
She: Good. Let's try something harder. |
She: What about quicksort implementation? |
You: (selecting "quicksort implementation") | stealth: quicksort implementation
You: Let me think about it. | (some big and clumsy lowlevel implementation shown)
You: Well...(starting typing it in) | def sort(array=[12,4,5,6,7,3,1,15]):
| less = []
She: (seeing your ugly pascal style) | equal = []
She: Could you write it more concise? | greater = []
| if len(array) > 1:
You: What do you mean? | pivot = array[0]
| for x in array:
She: I mean, | if x < pivot: less.append(x)
She: do you really need all these ifs and fors? | if x == pivot: equal.append(x)
She: Could you maybe just use filter instead? | if x > pivot: greater.append(x)
| return sort(less)+equal+sort(greater)
You: quicksort with filter? | else:
| return array
She: Yes |
You: (selecting "quicksort with filter") | stealth: quicksort with filter
You: Ok, I will try. | return qsort(filter(lt, L[1:]))+[pivot] \
You: Something like this? | +qsort(filter(ge, L[1:]))
You: qsort(filter(lt, L[1:]))+[pivot] \ |
+ qsort(filter(ge, L[1:])) |
|
She: Yes! Perfect! Exactly what I wanted to see! |
|
```
Of course, this is just for fun, and you should never cheat in your coding interviews,
because you know what happens when you do.

### Windows command line client
You can access cheat.sh from Windows command line too.
Use cheat.sh command line client for that: [`cht.exe`](https://github.com/tpanj/cht.exe).
It supports:
* output colorization;
* command line options;
* its own configuration file.
You can also use [`scoop`](https://github.com/lukesampson/scoop) command-line installer for Windows to get it:
```batch
scoop install cht
```
----
## Self-Hosting
### Docker
Currently, the easiest way to get a self-hosted instance running is by using
the `docker-compose.yml` file.
docker-compose up
This builds and runs the image with baked in cheatsheets and starts the app
and a Redis instance to back it, making the service available at
http://localhost:8002 This is currently an early implementation and should
probably not be used for anything outside of internal/dev/personal use right
now.
## Editors integration
You can use *cheat.sh* directly from the editor
(*Emacs*, *Sublime*, *Vim*, and *Visual Studio Code* are currently supported;
not all features are supported by all plugins though; see below).
Instead of opening your browser, googling, browsing Stack Overflow
and eventually copying the code snippets you need into the clipboard
and later pasting them into the editor,
you can achieve the same instantly and without leaving the editor at all!
Here is what it looks like in Vim:
1. If you have a question while editing a program, you can just type
your question directly in the buffer and press `KK`. You will get
the answer to your question in pager. (with `KB` you'll get the answer
in a separate buffer).
2. If you like the answer, you can manually paste it from the buffer or
the pager, or if you are lazy you can use `KP` to paste it below/under
your question (or replace you question using `KR`). If you want the
answer without the comments, `KC` replays the last query
toggling them.
If you use some static analysis plugin such as *syntastic* (for Vim), you can use
its warning and error messages as cheat.sh queries: place the cursor on the problem line
and press `KE`: explanation for the warning will be opened in a new buffer.
Features supported by cheat.sh plugins for different editors:
|Feature |Emacs|Sublime|Vim|VSCode|IDEA|QtCreator|
|-------------------|-----|-------|---|------|----|---------|
|Command queries |✓ |✓ |✓ |✓ |✓ |✓ |
|Queries from buffer| | |✓ |✓ | |✓ |
|Toggle comments | | |✓ |✓ |✓ |✓ |
|Prev/next answer | | |✓ |✓ |✓ |✓ |
|Multiple answers | |✓ | | |✓ | |
|Warnings as queries| | |✓ | | | |
|Queries history | | |✓ |✓ | | |
|Session id | | |✓ | | | |
|Configurable server|✓ | |✓ |✓ | |✓ |
### Vim
* [cheat.sh-vim](https://github.com/dbeniamine/cheat.sh-vim) — Vim support
Here is Vim configuration example:
```vim
" some configuration above ...
let mapleader=" "
call vundle#begin()
Bundle 'gmarik/vundle'
Bundle 'scrooloose/syntastic'
Bundle 'dbeniamine/cheat.sh-vim'
call vundle#end()
let g:syntastic_javascript_checkers = [ 'jshint' ]
let g:syntastic_ocaml_checkers = ['merlin']
let g:syntastic_python_checkers = ['pylint']
let g:syntastic_shell_checkers = ['shellcheck']
" some configuration below ...
```
In this example, several Vim plugins are used:
* [gmarik/vundle](https://github.com/VundleVim/Vundle.vim) — Vim plugin manager
* [scrooloose/syntastic](https://github.com/vim-syntastic/syntastic) — Syntax checking plugin
* [cheat.sh-vim](https://github.com/dbeniamine/cheat.sh-vim) — Vim support
Syntastic shows warnings and errors (found by code analysis tools: `jshint`, `merlin`, `pylint`, `shellcheck` etc.),
and `cheat.sh-vim` shows you explanations for the errors and warnings
and answers on programming languages queries written in the editor.
Watch a demo, where the most important features of the cheat.sh Vim plugin are shown (5 Min):
Or, if you want to scroll and/or pause, the same on YouTube:
### Emacs
* [cheat-sh.el](https://github.com/davep/cheat-sh.el) — Emacs support (available also at cheat.sh/:emacs)
* cheat.sh/:emacs-ivy — Emacs support for ivy users
[](https://asciinema.org/a/3xvqwrsu9g4taj5w526sb2t35)
### Visual Studio Code
* [vscode-snippet](https://github.com/mre/vscode-snippet)
* Install it from [VSCode Marketplace](https://marketplace.visualstudio.com/items?itemName=vscode-snippet.Snippet)
Usage:
1. Hit ⌘ Command + ⇧ Shift + p
2. Run `Snippet: Find`.
3. Type your query and hit enter.
[](https://github.com/mre/vscode-snippet)
*(GIF courtesy: Matthias Endler, @mre)*
### Sublime
* [cheat.sh-sublime-plugin](https://github.com/gauravk-in/cheat.sh-sublime-plugin/)
Usage:
1. Write your query string.
2. Select the query string.
3. Press Cmd + ⇧ Shift + B to replace the selected query string by the answer generated from `cht.sh`.
[](https://github.com/gauravk-in/cheat.sh-sublime-plugin)
*(GIF courtesy: Gaurav Kukreja, @gauravk-in)*
### IntelliJ IDEA
* [idea-cheatsh-plugin](https://github.com/szymonprz/idea-cheatsh-plugin)
* Install from [idea plugins marketplace](https://plugins.jetbrains.com/plugin/11942-cheat-sh-code-snippets)
Usage:
1. Write query string
2. Select the query string
3. Press keyboard shortcut Alt + C , S to replace the selected query string by the answer
[](https://github.com/szymonprz/idea-cheatsh-plugin)
*(GIF courtesy: Szymon Przebierowski, @szymonprz)*
### QtCreator
* [cheatsh-qtcreator](https://github.com/pozemka/cheatsh-qtcreator)
Current features:
* search word under cursor
* search selected
* query search
* disable comments
* paste answer (?TQ version)
* custom server URL
* custom search context (default is cpp)
* hotkeys and menu
[](https://github.com/pozemka/cheatsh-qtcreator)
*(GIF courtesy: Pozemka, @pozemka)*
## Special pages
There are several special pages that are not cheat sheets.
Their names start with colon and have special meaning.
Getting started:
```
:help description of all special pages and options
:intro cheat.sh introduction, covering the most important usage questions
:list list all cheat sheets (can be used in a subsection too: /go/:list)
```
Command line client `cht.sh` and shells support:
```
:cht.sh code of the cht.sh client
:bash_completion bash function for tab completion
:bash bash function and tab completion setup
:fish fish function and tab completion setup
:zsh zsh function and tab completion setup
```
Editors support:
```
:vim cheat.sh support for Vim
:emacs cheat.sh function for Emacs
:emacs-ivy cheat.sh function for Emacs (uses ivy)
```
Other pages:
```
:post how to post new cheat sheet
:styles list of color styles
:styles-demo show color styles usage examples
:random fetches a random page (can be used in a subsection too: /go/:random)
```
## Search
To search for a keyword, use the query:
```
/~keyword
```
In this case search is not recursive — it is conducted only in a page of the specified level.
For example:
```
/~snapshot look for snapshot in the first level cheat sheets
/scala/~currying look for currying in scala cheat sheets
```
For a recursive search in all cheat sheets, use double slash:
```
/~snapshot/r look for snapshot in all cheat sheets
```
You can use special search options after the closing slash:
```
/~shot/bi case insensitive (i), word boundaries (b)
```
List of search options:
```
i case insensitive search
b word boundaries
r recursive search
```
## Programming languages cheat sheets
Cheat sheets related to programming languages
are organized in namespaces (subdirectories), that are named according
to the programming language.
For each supported programming language
there are several special cheat sheets: its own sheet, `hello`, `:list` and `:learn`.
Say for lua it will look like:
```
lua
lua/hello
lua/:list
lua/:learn
```
Some languages has the one-liners-cheat sheet, `1line`:
```
perl/1line
```
* `hello` describes how you can start with the language — install it if needed, build and run its programs, and it shows the "Hello world" program written in the language;
* `:list` shows all topics related to the language
* `:learn` shows a learn-x-in-minutes language cheat sheet perfect for getting started with the language.
* `1line` is a collection of one-liners in this language
* `weirdness` is a collection of examples of weird things in this language

At the moment, cheat.sh covers the 58 following programming languages (alphabetically sorted):
|Prefix |Language |Basics|One-liners|Weirdness|StackOverflow|
|-----------|----------|------|----------|---------|-------------|
|`arduino/` |Arduino | | | |✓ |
|`assembly/`|Assembly | | | |✓ |
|`awk/` |AWK |✓ | | |✓ |
|`bash/` |Bash |✓ | | |✓ |
|`basic/` |BASIC | | | |✓ |
|`bf/` |Brainfuck |✓ | | |✓ |
|`c/` |C |✓ | | |✓ |
|`chapel/` |Chapel |✓ | | |✓ |
|`clean/` |Clean | | | |✓ |
|`clojure/` |Clojure |✓ | | |✓ |
|`coffee/` |CoffeeScript|✓ | | |✓ |
|`cpp/` |C++ |✓ | | |✓ |
|`csharp/` |C# |✓ | | |✓ |
|`d/` |D |✓ | | |✓ |
|`dart/` |Dart |✓ | | |✓ |
|`delphi/` |Dephi | | | |✓ |
|`dylan/` |Dylan |✓ | | |✓ |
|`eiffel/` |Eiffel | | | |✓ |
|`elixir/` |Elixir |✓ | | |✓ |
|`elisp/` |ELisp |✓ | | |✓ |
|`elm/` |Elm |✓ | | |✓ |
|`erlang/` |Erlang |✓ | | |✓ |
|`factor/` |Factor |✓ | | |✓ |
|`fortran/` |Fortran |✓ | | |✓ |
|`forth/` |Forth |✓ | | |✓ |
|`fsharp/` |F# |✓ | | |✓ |
|`go/` |Go |✓ | | |✓ |
|`groovy/` |Groovy |✓ | | |✓ |
|`haskell/` |Haskell |✓ | | |✓ |
|`java/` |Java |✓ | | |✓ |
|`js/` |JavaScript|✓ |✓ |✓ |✓ |
|`julia/` |Julia |✓ | | |✓ |
|`kotlin/` |Kotlin |✓ | | |✓ |
|`latex/` |LaTeX |✓ | | |✓ |
|`lisp/` |Lisp |✓ | | |✓ |
|`lua/` |Lua |✓ | | |✓ |
|`matlab/` |MATLAB |✓ | | |✓ |
|`nim/` |Nim |✓ | | |✓ |
|`ocaml/` |OCaml |✓ | | |✓ |
|`octave/` |Octave |✓ | | |✓ |
|`perl/` |Perl |✓ |✓ | |✓ |
|`perl6/` |Perl 6 |✓ |✓ | |✓ |
|`php/` |PHP |✓ | | |✓ |
|`pike/` |Pike | | | |✓ |
|`python/` |Python |✓ |✓ | |✓ |
|`python3/` |Python 3 |✓ | | |✓ |
|`r/` |R |✓ | | |✓ |
|`racket/` |Racket |✓ | | |✓ |
|`ruby/` |Ruby |✓ | | |✓ |
|`rust/` |Rust |✓ | | |✓ |
|`scala/` |Scala |✓ | | |✓ |
|`scheme/` |Scheme |✓ | | |✓ |
|`solidity/`|Solidity |✓ | | |✓ |
|`swift/` |Swift |✓ | | |✓ |
|`tcsh/` |Tcsh |✓ | | |✓ |
|`tcl/` |Tcl |✓ | | |✓ |
|`objective-c/`|Objective-C|✓ | | |✓ |
|`vb/` |VisualBasic|✓ | | |✓ |
|`vbnet/` |VB.Net |✓ | | |✓ |
And several other topics, that are though related to programming,
are not programming languages:
|Prefix |Topic |Basics|StackOverflow|
|-----------|----------|------|-------------|
|`cmake/` |CMake |✓ |✓ |
|`django/` |Django | |✓ |
|`flask/` |Flask | |✓ |
|`git/` |Git |✓ |✓ |
## Cheat sheets sources
Instead of creating yet another mediocre cheat sheet repository,
we are concentrating our efforts on creation of a unified
mechanism to access selected existing well developed and good maintained
cheat sheet repositories covering topics of our interest:
programming and operating systems usage.
*cheat.sh* uses selected community driven cheat sheet repositories
and information sources, maintained by thousands of users, developers and authors
all over the world
(in the *Users* column number of contributors/number of stars is shown):
|Cheat sheets |Repository |C/U* |Stars |Creation Date|
|-----------------------|------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|-------------|
|UNIX/Linux, programming|[cheat.sheets](https://github.com/chubin/cheat.sheets) | | |May 1, 2017 |
|UNIX/Linux commands |[tldr-pages/tldr](https://github.com/tldr-pages/tldr) | | |Dec 8, 2013 |
|UNIX/Linux commands |[chrisallenlane/cheat](https://github.com/chrisallenlane/cheat) | | |Jul 28, 2013 |
|Programming languages |[adambard/learnxinyminutes-docs](https://github.com/adambard/learnxinyminutes-docs) |||Jun 23, 2013 |
|Go |[a8m/go-lang-cheat-sheet](https://github.com/a8m/go-lang-cheat-sheet) | | |Feb 9, 2014 |
|Perl |[pkrumnis/perl1line.txt](https://github.com/pkrumins/perl1line.txt) | | |Nov 4, 2011 |
|Programming languages |[StackOverflow](https://stackoverflow.com) |[14M](https://stackexchange.com/leagues/1/alltime/stackoverflow) |N/A |Sep 15, 2008 |
(*) C/U — contributors for GitHub repositories, Users for Stackoverflow
Pie diagram reflecting cheat sheets sources distribution (by number of cheat sheets on cheat.sh originating from a repository):

## How to contribute
### How to edit a cheat sheet
If you want to edit a cheat.sh cheat sheet, you should edit it in the upstream repository.
You will find the name of the source repository in a browser when you open a cheat sheet.
There are two github buttons at the bottom of the page: the second one is the button
of the repository, which belongs the current cheat sheet.
You can edit the cheat sheet directly in your browser (you need a github account for it).
There is an edit button in the top right corner. If you click on it, an editor will be open.
There you will change the cheat sheet (under the hood: the upstream repository is forked, your changes are
committed in the forked repository, a pull request to the upstream repository owner is sent).

### How to add a cheat sheet
If you want to add a cheat sheet, you have one of the following
ways:
* Add it to one of the external cheat sheets repositories; you should decide on your own what is the best repository for your cheat sheet;
* Add it to the local cheat.sh repository ([cheat.sheets](https://github.com/chubin/cheat.sheets)) on github (fork, commit, pull request);
* Post it on cheat.sh using curl or a web browser ([cheat.sh/:post](http://cheat.sh/:post)).
If you want to change an existing cheat sheet,
you have to find the original repository (when you open a cheat sheet in a browser,
you see the repository's github button in the bottom of the cheat sheet),
the cheat sheet is coming from, and change it there.
After some time the changes will be synchronized on cheat.sh.
### How to add a cheat sheet repository
If you want to add a cheat sheet repository to cheat.sh, please open an issue:
* [Add a new repository](https://github.com/chubin/cheat.sh/issues/new)
Please specify the name of the repository, and give its short description.
## Installation and standalone usage
You don't need to install anything, to start using *cheat.sh*.
There are two cases, when you want to install *cheat.sh* locally:
1. You plan to use it off-line, without Internet access;
2. You want to use your own cheat sheets (additionally, or as a replacement).
Installation process in described in details here: [cheat.sh standalone installation](doc/standalone.md)
cheat.sh-0.0~git20220418.571377f/.gitignore 0000644 0000000 0000000 00000000140 14227330375 016204 0 ustar root root *.pyc
*.swp
log/
ve/
share/vim/.vim/
share/vim/.viminfo
typescript
venv/
bin/upstream
upstream/
cheat.sh-0.0~git20220418.571377f/doc/ 0000755 0000000 0000000 00000000000 14227330375 014766 5 ustar root root cheat.sh-0.0~git20220418.571377f/doc/README-ja.md 0000644 0000000 0000000 00000067241 14227330375 016647 0 ustar root root 唯一のチートシート https://cheat.sh/ が必要です
世界の最高のコミュニティ駆動チートシートリポジトリへの統一されたアクセス。
理想的なチートシートのようなものがあるとすぐに想像してみましょう。 どのように見える? どのような機能が必要ですか?
簡潔に – 簡潔にする必要があります。 それはあなたが必要とするものだけを含んでいなければなりません。
速く – それを即座に使用することが可能でなければなりません。
包括的 – あなたが持つ可能性があるすべての質問に対する回答を含める必要があります。
普遍的な – 準備ができていなくても、必要に応じてどこでもすぐに利用できるはずです。
邪魔になりません – あなたの主な仕事からあなたをそらすことはありません。
先入観 – それはあなたがその科目を学ぶのに役立ちます。
目立たない – 完全に気付かれないで使用することが可能でなければならない。
そんなことは存在しない。
特徴
チート.sh
単純なカール/ブラウザインターフェイスを備えています。
55のプログラミング言語、いくつかのDBMS、および1000以上の最も重要なUNIX / Linuxコマンドをカバーしています。
世界で最も優れたコミュニティ主導のチートシートリポジトリへのアクセスと、StackOverflowへのアクセスを提供します。
あらゆる場所で利用でき、インストールは必要ありません。
ultrafastは、原則として100ミリ秒以内に回答を返します。
便利で便利なコマンドラインクライアントcht.shがありますが、これは必須ではありません。
ブラウザを開いて精神的なコンテキストを切り替えることなく、コードエディタから直接使用することができます。
特殊モード(ステルスモード)をサポートしています。このモードでは、鍵に触れたり、音を出させたりすることなく、完全に目に見えない状態で使用できます。
使用法
コマンドラインからUNIX / Linuxコマンドのチートシートを取得するには、 curlまたは他のHTTP / HTTPSクライアントを使用して、クエリのコマンド名を指定してサービスをクエリします。
```
curl cheat.sh/tar
curl cht.sh/curl
curl https://cheat.sh/rsync
curl https://cht.sh/tr
```
ご覧のとおり、HTTPSとHTTPの両方を使用してサービスにアクセスし、長い(cheat.sh)サービス名と短い(cht.sh)サービス名の両方にアクセスできます。
ここで、 tar 、 curl 、 rsync 、 trはUNIX / Linuxコマンドの名前です。あなたはチートシートを入手したいと思っています。
必要なコマンドの名前がわからない場合は、 ~KEYWORD記法を使用して検索することができます。 たとえば、ファイルシステム/ボリューム/その他のsnapshotsを作成する方法を知るには:
```
curl cht.sh/~snapshot
```
プログラミング言語チートシートは、ルート名前空間には直接配置されず、専用の特別な名前空間に配置されます。
```
curl cht.sh/go/Pointers
curl cht.sh/scala/Functions
curl cht.sh/python/lambda
```
利用可能なプログラミング言語チートシートのリストを取得するには、特別なクエリを実行します。list:
```
curl cht.sh/go/:list
```
(ほぼ)それぞれのプログラミング言語には、 :learnという名前の特別なページがあります。これは、言語の基礎を説明しています( 「Learn X in Y」プロジェクトからの直接マッピングです)。 あなたが言語を学び始めたばかりの方は、良い出発点になるかもしれません。
いくつかのプログラミング言語のクエリ用のチートシートがない場合(ほとんどの場合そうです)、利用可能なチートシートとStackOverflowでの回答に基づいてオンザフライで生成されます。 もちろん、返されたチートシートが100%ヒットしたという保証はありませんが、ほとんど常にあなたが探しているものです。
これらの(そしてあなた自身の)クエリを試して、その印象をどのように見えるかを見てみましょう:
```
curl cht.sh/go/reverse+a+list
curl cht.sh/python/random+list+elements
curl cht.sh/js/parse+json
curl cht.sh/lua/merge+tables
curl cht.sh/clojure/variadic+function
```
いくつかのクエリの答えが気に入らない場合は、別のパラメータを選択することができます:追加のパラメータ/1 、 /2などをつけてクエリを繰り返します:
```
curl cht.sh/python/random+string
curl cht.sh/python/random+string/1
curl cht.sh/python/random+string/2
```
チートシートは照会されたプログラミング言語のコードとしてフォーマットされています(少なくともこれを行うために最善を尽くしています)。この言語のプログラムに直接貼り付けることができます。 テキストコメントがある場合は、言語構文に従って書式設定されます。
```
$ curl cht.sh/lua/table+keys
-- lua: retrieve list of keys in a table
local keyset={}
local n=0
for k,v in pairs(tab) do
n=n+1
keyset[n]=k
end
--[[
[ Note that you cannot guarantee any order in keyset. If you want the
[ keys in sorted order, then sort keyset with table.sort(keyset).
[
[ [lhf] [so/q/12674345] [cc by-sa 3.0]
]]
```
答えにテキストコメントが必要ない場合は、特別なオプションを使用してコメントを削除できます?Q :
```
$ curl cht.sh/lua/table+keys?Q
local keyset={}
local n=0
for k,v in pairs(tab) do
n=n+1
keyset[n]=k
end
```
構文強調表示が必要ない場合は、 ?Tを使ってスイッチをオフにし?T 。 オプションを一緒に組み合わせることができます:
```
curl cht.sh/go/reverse+a+list?Q
curl cht.sh/python/random+list+elements?Q
curl cht.sh/js/parse+json?Q
curl cht.sh/lua/merge+tables?QT
curl cht.sh/clojure/variadic+function?QT
```
下記および/:help記載されているすべてのオプションの完全なリスト
あなた自身の質問をお試しください。 次のルールに従ってください。
より具体的になるようにしてください( /python/append+fileは/python/fileや/python/appendよりも優れてい/python/append )。
可能であれば実践的な質問をする(しかし理論的な質問も可能である)。
プログラミング言語に関する質問のみを行います。 セクション名としてプログラミング言語の名前を指定します。
空白ではなく+区切ります。
とにかく無視される特殊文字は使用しないでください。
以下のプログラミング言語のクエリについての詳細を読む。
コマンドラインクライアント、cht.sh
cheat.shサービスには独自のコマンドラインクライアント( cht.sh )があり、 curlを使ってサービスを直接照会するのに比べ、いくつかの便利な機能があります。
永続的なクエリコンテキストとreadlineサポートを備えた特別なシェルモード。
クエリの履歴。
クリップボードの統合。
シェルのタブ補完のサポート(bash、fish、zsh);
ステルスモード。
クライアントをインストールするには:
```
curl https://cht.sh/:cht.sh > ~/bin/cht.sh
chmod +x ~/bin/cht.sh
```
さて、あなたはcurl代わりにcht.shを使い、より自然な方法であなたのクエリを+代わりにスペースで書くことができます:
```
$ cht.sh go reverse a list
$ cht.sh python random list elements
$ cht.sh js parse json
```
特別なシェルモードでクライアントを起動する方がさらに便利です:
```
$ cht.sh --shell
cht.sh> go reverse a list
```
すべてのクエリがほぼ同じ言語であると想定されている場合は、クエリのコンテキストを変更して、プログラミング言語の名前を繰り返すことができます。
```
$ cht.sh --shell
cht.sh> cd go
cht.sh/go> reverse a list
```
このコンテキストでクライアントを起動することさえできます:
```
$ cht.sh --shell go
cht.sh/go> reverse a list
...
cht.sh/go> join a list
...
```
コンテキストを変更したい場合は、 cdコマンドで行うことができます。あるいは、他の言語のクエリを1つだけ実行する場合は、 /ください:
```
$ cht.sh --shell go
...
cht.sh/go> /python dictionary comprehension
...
```
最後の回答をクリップボードにcopyする場合は、 c ( copy )コマンドまたはC (コメントなしのccopy )コマンドを使用できます。
```
cht.sh/python> append file
# python - How do you append to a file?
with open("test.txt", "a") as myfile:
myfile.write("appended text")
cht.sh/python> C
copy: 2 lines copied to the selection
```
他の内部cht.shコマンドのhelpを入力してください。
```
cht.sh> help
help - show this help
hush - do not show the 'help' string at start anymore
cd LANG - change the language context
copy - copy the last answer in the clipboard (aliases: yank, y, c)
ccopy - copy the last answer w/o comments (cut comments; aliases: cc, Y, C)
exit - exit the cheat shell (aliases: quit, ^D)
id [ID] - set/show an unique session id ("reset" to reset, "remove" to remove)
stealth - stealth mode (automatic queries for selected text)
update - self update (only if the scriptfile is writeable)
version - show current cht.sh version
/:help - service help
QUERY - space separated query staring (examples are below)
cht.sh> python zip list
cht.sh/python> zip list
cht.sh/go> /python zip list
```
cht.shクライアントの設定ファイルは~/.cht.sh/cht.sh.confます。 これを使用して、各クエリで使用するクエリオプションを指定します。 たとえば、構文の強調表示をオフに切り替えるには、次の内容のファイルを作成します。
```
QUERY_OPTIONS="T"
```
または、特殊な構文強調表示テーマを使用する場合は、次のようにします。
```
QUERY_OPTIONS="style=native"
```
( curl cht.sh/:styles-demoサポートされているすべてのスタイルが表示されます)。
タブ補完
cht.shタブ補完のサポートをcht.shにするには、 ~/.bashrc : :bash_completionスクリプトを追加してください:
$ curl https://cheat.sh/:bash_completion > ~/.bash.d/cht.sh
$ . ~/.bash.d/cht.sh
$ # and add . ~/.bash.d/cht.sh to ~/.bashrc
ステルスモード
実際のチートシートの重要な特性の1つは、それが完全に気付かれずに使用できるということです。
cheat.shはまったく気付かれずに使えます。 cheat.shクライアント、 cht.shには、 ステルスモードと呼ばれる特別なモードがあります。これは、キーボードに触れてチートシートを開く必要がないことを利用しています。
このモードでは、マウスでテキストを選択すると(そしてX Window Systemの選択バッファやクリップボードに追加されるとすぐに)、それはcheat.shのクエリ文字列として使用され、特派員のチートシートは自動的に表示されます。
インタビュー担当者が共有文書(Google Docsなど)を使っていくつかの質問をし、そこにコーディング回答を書くことになっているオンラインインタビューをしていることを想像してみましょう。面接官にあなたがそれを正しく聞いたことを示すために)
ステルスモードのcht.shを使用しているときは、何らかの質問のためにチートシートを見るために必要なのは、マウスを使って質問を選択することだけです。 答えにテキストを入れたくない場合は、コードだけが必要です。ステルスモードを開始するときには、 Qオプションを使用してください。
```
You: Hi! | $ cht.sh --shell python
She: Hi! | cht.sh/python> stealth Q
She: Are you ready for a small interview? | stealth: you are in the stealth mode; select any text
She: Just a couple of questions | stealth: selections longer than 5 words are ignored
She: We will talk about python | stealth: query arguments: ?Q
She: Let's start from something simple. | stealth: use ^C to leave this mode
She: Do you know how to reverse a list in python? |
You: Sure |
You: (selecting "reverse a list") | stealth: reverse a list
| reverse_lst = lst[::-1]
You: lst[::-1]? |
She: Good. |
She: Do you know how to chain a list of lists? |
You: (selecting "chain a list of lists") | stealth: chain a list of lists
| import itertools
| a = [["a","b"], ["c"]]
| print list(itertools.chain.from_iterable(a))
You: May I use external modules? |
She: What module do you want to use? |
You: itertools |
She: Yes, you may use it |
You: Ok, then: |
You: itertools.chain.from_iterable(a) |
She: Good. Let's try something harder. |
She: What about quicksort implementation? |
You: (selecting "quicksort implementation") | stealth: quicksort implementation
You: Let me think about it. | (some big and clumsy lowlevel implementation shown)
You: Well...(starting typing it in) | def sort(array=[12,4,5,6,7,3,1,15]):
| less = []
She: (seeing your ugly pascal style) | equal = []
She: Could you write it more concise? | greater = []
| if len(array) > 1:
You: What do you mean? | pivot = array[0]
| for x in array:
She: I mean, | if x < pivot: less.append(x)
She: do you really need all these ifs and fors? | if x == pivot: equal.append(x)
She: Could you may be just use filter instead? | if x > pivot: greater.append(x)
| return sort(less)+equal+sort(greater)
You: quicksort with filter? | else:
| return array
She: Yes |
You: (selecting "quicksort with filter") | stealth: quicksort with filter
You: Ok, I will try. | return qsort(filter(lt, L[1:]))+[pivot] \
You: Something like this? | +qsort(filter(ge, L[1:]))
You: qsort(filter(lt, L[1:]))+[pivot] \ |
+ qsort(filter(ge, L[1:])) |
|
She: Yes! Perfect! Exactly what I wanted to see! |
|
```
もちろん、それはちょうど楽しいことです。あなたが行ったときに何が起こるかを知っているので、コーディングのインタビューで決して欺くべきではありません。
エディターの統合
エディタから直接cheat.shを使うことができます( VimとEmacsは現在サポートされています)。 あなたのブラウザを開き、グーグルで、スタックオーバーフローをブラウズし、最終的に必要なコードスニペットをクリップボードにコピーして後でエディタに貼り付けるのではなく、エディタを離れずに同じことを達成することができます。
これはVimのように見えます:
プログラムの編集中に質問がある場合は、バッファに直接質問を入力してKKを押してください。 ポケットベルであなたの質問に対する答えが得られます。 ( KBすると、別のバッファで回答が得られます)。
答えが気に入ったらバッファやページャから手作業で貼り付けてください。怠け者の場合はKPを使って質問の下/下に貼り付けることができます。 コメントなしで回答が必要な場合は、 KCが最後のクエリを再生してそれらを切り替えます。
シンセシス (Vim用)などの静的解析プラグインを使用している場合は、警告とエラーメッセージをcheat.shクエリとして使用できます:カーソルを問題の行に置き、 KE :警告の説明を開きます新しいバッファに入れます。
ヴィム
cheat.sh-vim – Vimのサポート
ここにVimの設定例を示します:
```
" some configuration above ...
let mapleader=" "
call vundle#begin()
Bundle 'gmarik/vundle'
Bundle 'scrooloose/syntastic'
Bundle 'dbeniamine/cheat.sh-vim'
call vundle#end()
let g:syntastic_javascript_checkers = [ 'jshint' ]
let g:syntastic_ocaml_checkers = ['merlin']
let g:syntastic_python_checkers = ['pylint']
let g:syntastic_shell_checkers = ['shellcheck']
" some configuration below ...
```
この例では、いくつかのVimプラグインが使用されています:
gmarik / vundle – Vimプラグインマネージャ
scrooloose / syntastic – 構文チェックプラグイン
cheat.sh-vim – Vimのサポート
Syntasticは警告とエラー(code analysysツールで見つかった: jshint 、 jshint 、 pylint 、 shellcheckt etc.), and cheat.sh-vim`を表示すると、エディタに書き込まれたプログラミング言語のクエリに関するエラーと警告と回答の説明が表示されます。
cheat.sh Vimプラグインの最も重要な機能が表示されているデモをご覧ください(5分):
または、スクロールしたり一時停止したりする場合は、YouTubeでも同じです:
Emacs
cheat-sh.el – Emacsのサポート(cheat.sh/:emacsでも利用可能)
cheat.sh/:emacs-ivy – ivyユーザーのEmacsサポート
特別ページ
いくつかの特別なページがあり(その名前は常にコロンで始まります)、チートシートではなく特別な意味を持っています。
入門:
```
:help description of all special pages and options
:intro cheat.sh introduction, covering the most important usage questions
:list list all cheat sheets (can be used in a subsection too: /go/:list)
```
コマンドライン・クライアントcht.shとシェルは次のものをサポートしています。
```
:cht.sh code of the cht.sh client
:bash_completion bash function for tab completion
:bash bash function and tab completion setup
:fish fish function and tab completion setup
:zsh zsh function and tab completion setup
```
エディターのサポート:
:vim cheat.sh support for Vim
:emacs cheat.sh function for Emacs
:emacs-ivy cheat.sh function for Emacs (uses ivy)
その他のページ:
```
:post how to post new cheat sheet
:styles list of color styles
:styles-demo show color styles usage examples
```
サーチ
キーワードを検索するには、次のクエリを使用します。
```
/~keyword
```
この場合、検索は再帰的ではなく、指定されたレベルのページでのみ実行されます。 例えば:
```
/~snapshot look for snapshot in the first level cheat sheets
/scala/~currying look for currying in scala cheat sheets
```
すべてのチートシートで再帰的検索を行うには、二重スラッシュを使用します。
/~snapshot/r look for snapshot in all cheat sheets
スラッシュの後に特殊な検索オプションを使用することができます。
/~shot/bi case insensitive (i), word boundaries (b)
検索オプションのリスト:
```
i case insensitive search
b word boundaries
r recursive search
```
プログラミング言語チートシート
プログラミング言語に関連するチートシートは、プログラミング言語に従って名前が付けられた名前空間(サブディレクトリ)に編成されています。
サポートされているプログラミング言語ごとに、独自のsheet、 hello 、 :list 、 :learnいくつかの特別なチートシートがあり:learn 。 それはルアのように見えます:
```
lua
lua/hello
lua/:list
lua/:learn
```
いくつかの言語には、1行のチートシート、1 1line :
perl/1line
helloは、あなたがどのように言語を使い始めることができるかを記述します – 必要に応じてインストールし、プログラムをビルドして実行し、言語で書かれた “Hello world”プログラムを表示します。
:listには言語に関連するすべてのトピックが表示されます
:learnは、言語を使い始めるのに最適なx-in-minutes言語のチートシートを表示します。
1lineはこの言語の1ライナーの集合です
weirdnessなことはこの言語の奇妙なものの例の集まりです
現時点では、cheat.shは以下の55のプログラミング言語(アルファベット順にソートされています)をカバーしています:
接頭辞 言語 基本 ワンライナー 奇妙さ スタックオーバーフロー
arduino/ Arduino ✓
assembly/ アセンブリ ✓
awk/ AWK ✓ ✓
bash/ バッシュ ✓ ✓
basic/ ベーシック ✓
bf/ 頭痛 ✓ ✓
c/ C ✓ ✓
chapel/ チャペル ✓ ✓
clean/ クリーン ✓
clojure/ Clojure ✓ ✓
coffee/ CoffeeScript ✓ ✓
cpp/ C ++ ✓ ✓
csharp/ C# ✓ ✓
d/ D ✓ ✓
dart/ ダーツ ✓ ✓
delphi/ デフ ✓
dylan/ ディラン ✓ ✓
eiffel/ エッフェル ✓
elixir/ エリクシール ✓ ✓
elisp/ ELisp ✓ ✓
elm/ エルム ✓ ✓
erlang/ アーラン ✓ ✓
factor/ 因子 ✓ ✓
fortran/ Fortran ✓ ✓
forth/ 四方 ✓ ✓
fsharp/ F# ✓ ✓
go/ 行こう ✓ ✓
groovy/ Groovy ✓ ✓
haskell/ ハスケル ✓ ✓
java/ Java ✓ ✓
js/ JavaScript ✓ ✓ ✓ ✓
julia/ ジュリア ✓ ✓
kotlin/ コトリン ✓ ✓
lisp/ Lisp ✓ ✓
lua/ ルア ✓ ✓
matlab/ MATLAB ✓ ✓
ocaml/ OCaml ✓ ✓
perl/ Perl ✓ ✓ ✓
perl6/ Perl 6 ✓ ✓ ✓
php/ PHP ✓ ✓
pike/ パイク ✓
python/ Python ✓ ✓
python3/ Python 3 ✓ ✓
r/ R ✓ ✓
racket/ ラケット ✓ ✓
ruby/ ルビー ✓ ✓
rust/ 錆 ✓ ✓
scala/ スカラ ✓ ✓
scheme/ スキーム ✓ ✓
swift/ 迅速 ✓ ✓
tcsh/ Tcsh ✓ ✓
tcl/ Tcl ✓ ✓
objective-c/ 目標-C ✓ ✓
vb/ VisualBasic ✓ ✓
vbnet/ VB.Net ✓ ✓
チートシートのソース
さらに別の平凡なチートシートリポジトリを作成するのではなく、既存のよく開発されたよく管理されたチートシートリポジトリにアクセスする統一メカニズムの作成に力を注いでいます。
cheat.shは世界中の何千ものユーザー、開発者、作者によって管理されている選択されたコミュニティ駆動のチートシートリポジトリと情報ソースを使用します(貢献者のユーザー列数/星数が表示されます)。
カンニングペーパー リポジトリ ユーザー 作成日
UNIX / Linux、プログラミング カンニングペーパー 6/54 2017年5月1日
UNIX / Linuxコマンド tldr-pages / tldr 541/17360 2013年12月8日
UNIX / Linuxコマンド クリサンレン/チート 105/4193 2013年7月28日
プログラミング言語 adambard / learnxinyminutes-docs 1096/5285 2013年6月23日
行こう a8m / go-lang-cheat-sheet 29/3034 2014年2月9日
Perl pkrumnis / perl1line.txt 4/165 2011年11月4日
プログラミング言語 スタックオーバーフロー 9M 2008年9月15日
チートシートソースの分布を反映するパイダイアグラム(リポジトリから生成されたチート.shのチートシートの数による):
貢献する方法
チートシートの編集方法
cheat.shチートシートを編集する場合は、アップストリームレポジトリで編集する必要があります。 チートシートを開くと、ブラウザにソースリポジトリの名前が表示されます。 ページ下部に2つのgithubボタンがあります:2番目のボタンは、現在のチートシートに属するリポジトリのボタンです。
チートシートをブラウザで直接編集できます(githubアカウントが必要です)。 右上に編集ボタンがあります。 それをクリックすると、エディタが開きます。 そこではチートシートを変更します(ボンネットの下:アップストレームリポジトリはフォークされ、変更はフォークされたリポジトリでコミットされ、上流のリポジトリ所有者へのプルリクエストが送信されます)。
チートシートを追加する方法
チートシートを追加する場合は、次のいずれかの方法があります。
それを外部のチートシートレポジトリの1つに追加します。 自分のチートシートに最適なリポジトリが何であるかを決める必要があります。
github(fork、commit、pull request)のローカルcheat.shリポジトリ( cheat.sheets )に追加します。
curlやウェブブラウザ( cheat.sh/:post )を使ってcheat.shに投稿してください。
既存のチートシートを変更したい場合は、元のリポジトリを見つける必要があります(ブラウザでチートシートを開くと、チートシートの下部にリポジトリのgithubボタンが表示されます)、チートシートは、それを変更してください。 しばらくすると、変更はcheat.shで同期されます。
チートシートリポジトリを追加する方法
cheat.shにチートシートリポジトリを追加する場合は、問題を開いてください:
新しいリポジトリを追加する
リポジトリの名前を指定し、簡単な説明をしてください。
cheat.sh-0.0~git20220418.571377f/doc/standalone.md 0000644 0000000 0000000 00000005626 14227330375 017451 0 ustar root root
You don't need to install anything, to start using *cheat.sh*.
The only tool that you need is *curl*, which is typically installed
in every system. In the rare cases when *curl* is not installed,
there should be one of its alternatives in the system: *wget*, *wget2*,
*httpie*, *ftp* (with HTTP support), *fetch*, etc.
There are two cases, when you want to install *cheat.sh* locally:
1. You plan to use it off-line, without Internet access;
2. You want to use your own cheat sheets (additionally, or as a replacement).
In this case you need to install cheat.sh locally.
## How to install cheat.sh locally
To use cheat.sh offline, you need to:
1. Install it,
2. Fetch its data sources.
If you already have the cht.sh cli client locally,
you can use it for the standalone installation.
Otherwise it must be installed first.
```
curl https://cht.sh/:cht.sh > ~/bin/cht.sh
chmod +x ~/bin/cht.sh
```
Now you can install cheat.sh locally:
```
cht.sh --standalone-install
```
During the installation process, cheat.sh and its
data sources will be installed locally.
By default `~/.cheat.sh` is used as the installation
directory.

If you don't plan to use Redis for caching,
switch the caching off in the config file:
```
$ vim ~/.cheat.sh/etc/config.yaml
cache:
type: none
```
or with the environment variable `CHEATSH_CACHE_TYPE=none`.
## Update cheat sheets
Cheat sheets are fetched and installed to `~/.cheat.sh/upstream`.
To keep the cheat sheets up to date,
run the `cheat.sh` `update-all` command on regular basis.
Ideally, add it to *cron*:
```
0 5 0 0 0 $HOME/.cheat.sh/ve/bin/python $HOME/.cheat.sh/lib/fetch.py update-all
```
In this example, all information sources will be updated
each day at 5:00 local time, on regular basis.
## cheat.sh server mode
Your local cheat.sh installation is full-fledged, and it can
handle incoming HTTP/HTTPS queries.
To start cheat.sh in the server mode, run:
```
$HOME/.cheat.sh/ve/bin/python $HOME/.cheat.sh/bin/srv.py
```
You can also use `gunicorn` to start the cheat.sh server.
## Docker
You can deploy cheat.sh as a docker container.
Use `Dockerfile` in the source root directory, to build the Docker image:
```
docker build .
```
## Limitations
Some cheat sheets not available in the offline mode
for the moment. The reason for that is that to process some queries,
cheat.sh needs to access the Internet itself, because it does not have
the necessary data locally. We are working on that how to overcome
this limitation, but for the moment it still exists.
## Mac OS X Notes
### Installing Redis
To install Redis on Mac OS X (using `brew`):
```
$ brew install redis
$ ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
$ redis-cli ping
PONG
```
cheat.sh-0.0~git20220418.571377f/share/ 0000755 0000000 0000000 00000000000 14227330375 015323 5 ustar root root cheat.sh-0.0~git20220418.571377f/share/help.txt 0000644 0000000 0000000 00000004714 14227330375 017022 0 ustar root root Usage:
$ curl cheat.sh/TOPIC show cheat sheet on the TOPIC
$ curl cheat.sh/TOPIC/SUB show cheat sheet on the SUB topic in TOPIC
$ curl cheat.sh/~KEYWORD search cheat sheets for KEYWORD
Options:
?OPTIONS
q quiet mode, don't show github/twitter buttons
T text only, no ANSI sequences
style=STYLE color style
c do not comment text, do not shift code (QUERY+ only)
C do not comment text, shift code (QUERY+ only)
Q code only, don't show text (QUERY+ only)
Options can be combined together in this way:
curl 'cheat.sh/for?qT&style=bw'
(when using & in shell, don't forget to specify the quotes or escape & with \)
Special pages:
:help this page
:list list all cheat sheets
:post how to post new cheat sheet
:cht.sh shell client (cht.sh)
:bash_completion bash function for tab completion
:styles list of color styles
:styles-demo show color styles usage examples
:random fetches a random cheat sheet
Shell client:
$ curl https://cht.sh/:cht.sh > ~/bin/cht.sh
$ chmod +x ~/bin/cht.sh
$ cht.sh python :learn
$ cht.sh --shell
Tab completion:
$ mkdir -p ~/.bash.d/
$ curl cheat.sh/:bash_completion > ~/.bash.d/cht.sh
$ . ~/.bash.d/cht.sh
$ echo '. ~/.bash.d/cht.sh' >> ~/.bashrc
Editor integration:
:emacs see the page for the Emacs configuration
:vim see the page for the Vim configuration
Search:
/~snapshot look for "snapshot" in the first level cheat sheets
/~ssh~passphrase several keywords can be combined together using ~
/scala/~closure look for "closure" in scala cheat sheets
/~snapshot/r look for "snapshot" in all cheat sheets recursively
You can use special search options after the closing slash:
/~shot/bi case insensitive (i), word boundaries (b)
List of search options:
b word boundaries
i case insensitive search
r recursive
Programming languages topics:
Each programming language topic has the following subtopics:
hello hello world + how to start the program
:learn big cheat sheet for learning language from scratch
:list list of topics
:random fetches a random cheat sheet belonging to the topic
cheat.sh-0.0~git20220418.571377f/share/fish.txt 0000644 0000000 0000000 00000000506 14227330375 017016 0 ustar root root # add it to your ~/.config/fish/config.fish
# retrieve command cheat sheets from cheat.sh
# fish version by @tobiasreischmann
function cheat.sh
curl cheat.sh/$argv
end
# register completions (on-the-fly, non-cached, because the actual command won't be cached anyway
complete -c cheat.sh -xa '(curl -s cheat.sh/:list)'
cheat.sh-0.0~git20220418.571377f/share/firstpage-v2.txt 0000644 0000000 0000000 00000061636 14227330375 020411 0 ustar root root _ _ _ [38;2;0;204;0m_[0m[38;2;0;204;0m_[0m[38;2;0;204;0m [0m[38;2;0;204;0m [0m[38;2;0;204;0m [0m
___| |__ ___ __ _| |_ ___| |__ [38;2;0;204;0m\[0m[38;2;0;204;0m [0m[38;2;0;204;0m\[0m[38;2;0;204;0m [0m[38;2;0;204;0m [0m [48;2;85;85;85m [0m[48;2;85;85;85m [0m[48;2;85;85;85m [0m[48;2;85;85;85mT[0m[48;2;85;85;85mh[0m[48;2;85;85;85me[0m[48;2;85;85;85m [0m[48;2;85;85;85mo[0m[48;2;85;85;85mn[0m[48;2;85;85;85ml[0m[48;2;85;85;85my[0m[48;2;85;85;85m [0m[48;2;85;85;85mc[0m[48;2;85;85;85mh[0m[48;2;85;85;85me[0m[48;2;85;85;85ma[0m[48;2;85;85;85mt[0m[48;2;85;85;85m [0m[48;2;85;85;85ms[0m[48;2;85;85;85mh[0m[48;2;85;85;85me[0m[48;2;85;85;85me[0m[48;2;85;85;85mt[0m[48;2;85;85;85m [0m[48;2;85;85;85my[0m[48;2;85;85;85mo[0m[48;2;85;85;85mu[0m[48;2;85;85;85m [0m[48;2;85;85;85mn[0m[48;2;85;85;85me[0m[48;2;85;85;85me[0m[48;2;85;85;85md[0m[48;2;85;85;85m [0m[48;2;85;85;85m [0m[48;2;85;85;85m [0m
/ __| '_ \ / _ \/ _` | __| / __| '_ \ [38;2;0;204;0m\[0m[38;2;0;204;0m [0m[38;2;0;204;0m\[0m[38;2;0;204;0m [0m [38;2;136;136;136mU[0m[38;2;136;136;136mn[0m[38;2;136;136;136mi[0m[38;2;136;136;136mf[0m[38;2;136;136;136mi[0m[38;2;136;136;136me[0m[38;2;136;136;136md[0m[38;2;136;136;136m [0m[38;2;136;136;136ma[0m[38;2;136;136;136mc[0m[38;2;136;136;136mc[0m[38;2;136;136;136me[0m[38;2;136;136;136ms[0m[38;2;136;136;136ms[0m[38;2;136;136;136m [0m[38;2;136;136;136mt[0m[38;2;136;136;136mo[0m[38;2;136;136;136m [0m[38;2;136;136;136mt[0m[38;2;136;136;136mh[0m[38;2;136;136;136me[0m[38;2;136;136;136m [0m[38;2;136;136;136mb[0m[38;2;136;136;136me[0m[38;2;136;136;136ms[0m[38;2;136;136;136mt[0m[38;2;136;136;136m [0m[38;2;136;136;136m [0m[38;2;136;136;136m [0m[38;2;136;136;136m [0m
| (__| | | | __/ (_| | |_ _\__ \ | | |[38;2;0;204;0m/[0m[38;2;0;204;0m [0m[38;2;0;204;0m/[0m[38;2;0;204;0m [0m [38;2;136;136;136mc[0m[38;2;136;136;136mo[0m[38;2;136;136;136mm[0m[38;2;136;136;136mm[0m[38;2;136;136;136mu[0m[38;2;136;136;136mn[0m[38;2;136;136;136mi[0m[38;2;136;136;136mt[0m[38;2;136;136;136my[0m[38;2;136;136;136m [0m[38;2;136;136;136md[0m[38;2;136;136;136mr[0m[38;2;136;136;136mi[0m[38;2;136;136;136mv[0m[38;2;136;136;136me[0m[38;2;136;136;136mn[0m[38;2;136;136;136m [0m[38;2;136;136;136md[0m[38;2;136;136;136mo[0m[38;2;136;136;136mc[0m[38;2;136;136;136mu[0m[38;2;136;136;136mm[0m[38;2;136;136;136me[0m[38;2;136;136;136mn[0m[38;2;136;136;136mt[0m[38;2;136;136;136ma[0m[38;2;136;136;136mt[0m[38;2;136;136;136mi[0m[38;2;136;136;136mo[0m[38;2;136;136;136mn[0m
\___|_| |_|\___|\__,_|\__(_)___/_| |_[38;2;0;204;0m/[0m[38;2;0;204;0m_[0m[38;2;0;204;0m/[0m[38;2;0;204;0m [0m[38;2;0;204;0m [0m [38;2;136;136;136mr[0m[38;2;136;136;136me[0m[38;2;136;136;136mp[0m[38;2;136;136;136mo[0m[38;2;136;136;136ms[0m[38;2;136;136;136mi[0m[38;2;136;136;136mt[0m[38;2;136;136;136mo[0m[38;2;136;136;136mr[0m[38;2;136;136;136mi[0m[38;2;136;136;136me[0m[38;2;136;136;136ms[0m[38;2;136;136;136m [0m[38;2;136;136;136mo[0m[38;2;136;136;136mf[0m[38;2;136;136;136m [0m[38;2;136;136;136mt[0m[38;2;136;136;136mh[0m[38;2;136;136;136me[0m[38;2;136;136;136m [0m[38;2;136;136;136mw[0m[38;2;136;136;136mo[0m[38;2;136;136;136mr[0m[38;2;136;136;136ml[0m[38;2;136;136;136md[0m[38;2;136;136;136m [0m[38;2;136;136;136m [0m[38;2;136;136;136m [0m[38;2;136;136;136m [0m[38;2;136;136;136m [0m
[38;2;136;136;136m+[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m+[0m [38;2;136;136;136m+[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m+[0m [38;2;136;136;136m+[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m+[0m
[38;2;136;136;136m|[0m $ [38;2;0;204;0mc[0m[38;2;0;204;0mu[0m[38;2;0;204;0mr[0m[38;2;0;204;0ml[0m [38;2;0;170;204mc[0m[38;2;0;170;204mh[0m[38;2;0;170;204me[0m[38;2;0;170;204ma[0m[38;2;0;170;204mt[0m[38;2;0;170;204m.[0m[38;2;0;170;204ms[0m[38;2;0;170;204mh[0m[38;2;0;170;204m/[0m[38;2;0;170;204ml[0m[38;2;0;170;204ms[0m[38;2;0;170;204m [0m[38;2;0;170;204m [0m[38;2;0;170;204m [0m[38;2;0;170;204m [0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m $ [38;2;0;204;0mc[0m[38;2;0;204;0mh[0m[38;2;0;204;0mt[0m[38;2;0;204;0m.[0m[38;2;0;204;0ms[0m[38;2;0;204;0mh[0m [38;2;0;170;204mb[0m[38;2;0;170;204mt[0m[38;2;0;170;204mr[0m[38;2;0;170;204mf[0m[38;2;0;170;204ms[0m[38;2;0;170;204m [0m[38;2;0;170;204m [0m[38;2;0;170;204m [0m[38;2;0;170;204m [0m[38;2;0;170;204m [0m[38;2;0;170;204m [0m[38;2;0;170;204m [0m[38;2;0;170;204m [0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m $ [38;2;0;170;204mc[0m[38;2;0;170;204mh[0m[38;2;0;170;204mt[0m[38;2;0;170;204m.[0m[38;2;0;170;204ms[0m[38;2;0;170;204mh[0m[38;2;0;170;204m [0m[38;2;0;170;204ml[0m[38;2;0;170;204mu[0m[38;2;0;170;204ma[0m[38;2;0;170;204m/[0m[38;2;0;204;0m:[0m[38;2;0;204;0ml[0m[38;2;0;204;0me[0m[38;2;0;204;0ma[0m[38;2;0;204;0mr[0m[38;2;0;204;0mn[0m [38;2;136;136;136m|[0m
[38;2;136;136;136m|[0m $ [38;2;0;204;0mc[0m[38;2;0;204;0mu[0m[38;2;0;204;0mr[0m[38;2;0;204;0ml[0m [38;2;0;170;204mc[0m[38;2;0;170;204mh[0m[38;2;0;170;204mt[0m[38;2;0;170;204m.[0m[38;2;0;170;204ms[0m[38;2;0;170;204mh[0m[38;2;0;170;204m/[0m[38;2;0;170;204mb[0m[38;2;0;170;204mt[0m[38;2;0;170;204mr[0m[38;2;0;170;204mf[0m[38;2;0;170;204ms[0m[38;2;0;170;204m [0m[38;2;0;170;204m [0m[38;2;0;170;204m [0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m $ [38;2;0;204;0mc[0m[38;2;0;204;0mh[0m[38;2;0;204;0mt[0m[38;2;0;204;0m.[0m[38;2;0;204;0ms[0m[38;2;0;204;0mh[0m [38;2;0;170;204mt[0m[38;2;0;170;204ma[0m[38;2;0;170;204mr[0m[38;2;0;170;204m~[0m[38;2;0;170;204ml[0m[38;2;0;170;204mi[0m[38;2;0;170;204ms[0m[38;2;0;170;204mt[0m[38;2;0;170;204m [0m[38;2;0;170;204m [0m[38;2;0;170;204m [0m[38;2;0;170;204m [0m[38;2;0;170;204m [0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m Learn any[38;2;255;0;0m*[0m programming [38;2;136;136;136m|[0m
[38;2;136;136;136m|[0m $ [38;2;0;204;0mc[0m[38;2;0;204;0mu[0m[38;2;0;204;0mr[0m[38;2;0;204;0ml[0m [38;2;0;170;204mc[0m[38;2;0;170;204mh[0m[38;2;0;170;204mt[0m[38;2;0;170;204m.[0m[38;2;0;170;204ms[0m[38;2;0;170;204mh[0m[38;2;0;170;204m/[0m[38;2;0;170;204mt[0m[38;2;0;170;204ma[0m[38;2;0;170;204mr[0m[38;2;0;170;204m~[0m[38;2;0;170;204ml[0m[38;2;0;170;204mi[0m[38;2;0;170;204ms[0m[38;2;0;170;204mt[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m language not leaving [38;2;136;136;136m|[0m
[38;2;136;136;136m|[0m $ [38;2;0;170;204mc[0m[38;2;0;170;204mu[0m[38;2;0;170;204mr[0m[38;2;0;170;204ml[0m [38;2;0;204;0mh[0m[38;2;0;204;0mt[0m[38;2;0;204;0mt[0m[38;2;0;204;0mp[0m[38;2;0;204;0ms[0m[38;2;0;204;0m:[0m[38;2;0;170;204m/[0m[38;2;0;170;204m/[0m[38;2;0;170;204mc[0m[38;2;0;170;204mh[0m[38;2;0;170;204mt[0m[38;2;0;170;204m.[0m[38;2;0;170;204ms[0m[38;2;0;170;204mh[0m[38;2;0;170;204m [0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m your shell [38;2;136;136;136m|[0m
[38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;255;0;0m*[0m[38;2;255;0;0m)[0m any of 60 [38;2;136;136;136m|[0m
[38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m
[38;2;136;136;136m+[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;204;204;0m [0m[38;2;204;204;0mq[0m[38;2;204;204;0mu[0m[38;2;204;204;0me[0m[38;2;204;204;0mr[0m[38;2;204;204;0mi[0m[38;2;204;204;0me[0m[38;2;204;204;0ms[0m[38;2;204;204;0m [0m[38;2;204;204;0mw[0m[38;2;204;204;0mi[0m[38;2;204;204;0mt[0m[38;2;204;204;0mh[0m[38;2;204;204;0m [0m[38;2;204;204;0mc[0m[38;2;204;204;0mu[0m[38;2;204;204;0mr[0m[38;2;204;204;0ml[0m[38;2;204;204;0m [0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m+[0m [38;2;136;136;136m+[0m[38;2;136;136;136m-[0m [38;2;204;204;0mo[0m[38;2;204;204;0mw[0m[38;2;204;204;0mn[0m[38;2;204;204;0m [0m[38;2;204;204;0mo[0m[38;2;204;204;0mp[0m[38;2;204;204;0mt[0m[38;2;204;204;0mi[0m[38;2;204;204;0mo[0m[38;2;204;204;0mn[0m[38;2;204;204;0ma[0m[38;2;204;204;0ml[0m[38;2;204;204;0m [0m[38;2;204;204;0mc[0m[38;2;204;204;0ml[0m[38;2;204;204;0mi[0m[38;2;204;204;0me[0m[38;2;204;204;0mn[0m[38;2;204;204;0mt[0m [38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m+[0m [38;2;136;136;136m+[0m[38;2;136;136;136m-[0m [38;2;204;204;0ml[0m[38;2;204;204;0me[0m[38;2;204;204;0ma[0m[38;2;204;204;0mr[0m[38;2;204;204;0mn[0m[38;2;204;204;0m,[0m[38;2;204;204;0m [0m[38;2;204;204;0ml[0m[38;2;204;204;0me[0m[38;2;204;204;0ma[0m[38;2;204;204;0mr[0m[38;2;204;204;0mn[0m[38;2;204;204;0m,[0m[38;2;204;204;0m [0m[38;2;204;204;0ml[0m[38;2;204;204;0me[0m[38;2;204;204;0ma[0m[38;2;204;204;0mr[0m[38;2;204;204;0mn[0m[38;2;204;204;0m![0m [38;2;136;136;136m-[0m[38;2;136;136;136m+[0m
[38;2;136;136;136m+[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m+[0m [38;2;136;136;136m+[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m+[0m [38;2;136;136;136m+[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m+[0m
[38;2;136;136;136m|[0m $ [38;2;0;170;204mc[0m[38;2;0;170;204mh[0m[38;2;0;170;204mt[0m[38;2;0;170;204m.[0m[38;2;0;170;204ms[0m[38;2;0;170;204mh[0m[38;2;0;170;204m [0m[38;2;0;170;204mg[0m[38;2;0;170;204mo[0m[38;2;0;170;204m/[0m[38;2;0;170;204mf[0m[38;2;0;204;0m<[0m[38;2;0;204;0mt[0m[38;2;0;204;0ma[0m[38;2;0;204;0mb[0m[38;2;0;204;0m>[0m[38;2;0;204;0m<[0m[38;2;0;204;0mt[0m[38;2;0;204;0ma[0m[38;2;0;204;0mb[0m[38;2;0;204;0m>[0m[38;2;136;136;136m|[0m [38;2;136;136;136m|[0m $ [38;2;0;170;204mc[0m[38;2;0;170;204mh[0m[38;2;0;170;204mt[0m[38;2;0;170;204m.[0m[38;2;0;170;204ms[0m[38;2;0;170;204mh[0m [38;2;0;204;0m-[0m[38;2;0;204;0m-[0m[38;2;0;204;0ms[0m[38;2;0;204;0mh[0m[38;2;0;204;0me[0m[38;2;0;204;0ml[0m[38;2;0;204;0ml[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m $ [38;2;0;170;204mc[0m[38;2;0;170;204mh[0m[38;2;0;170;204mt[0m[38;2;0;170;204m.[0m[38;2;0;170;204ms[0m[38;2;0;170;204mh[0m [38;2;0;204;0mg[0m[38;2;0;204;0mo[0m[38;2;0;204;0m [0m[38;2;0;204;0mz[0m[38;2;0;204;0mi[0m[38;2;0;204;0mp[0m[38;2;0;204;0m [0m[38;2;0;204;0ml[0m[38;2;0;204;0mi[0m[38;2;0;204;0ms[0m[38;2;0;204;0mt[0m[38;2;0;204;0ms[0m [38;2;136;136;136m|[0m
[38;2;136;136;136m|[0m go/for go/func [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;34;170;34mc[0m[38;2;34;170;34mh[0m[38;2;34;170;34mt[0m[38;2;34;170;34m.[0m[38;2;34;170;34ms[0m[38;2;34;170;34mh[0m[38;2;34;170;34m>[0m help [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m Ask any question using [38;2;136;136;136m|[0m
[38;2;136;136;136m|[0m $ cht.sh go/for [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m ... [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m cht.sh or curl cht.sh: [38;2;136;136;136m|[0m
[38;2;136;136;136m|[0m ... [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m /go[38;2;34;170;34m/[0mzip[38;2;34;170;34m+[0mlists [38;2;136;136;136m|[0m
[38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m (use [38;2;34;170;34m/[0m,[38;2;34;170;34m+[0m when curling) [38;2;136;136;136m|[0m
[38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m
[38;2;136;136;136m+[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;204;204;0m [0m[38;2;204;204;0mT[0m[38;2;204;204;0mA[0m[38;2;204;204;0mB[0m[38;2;204;204;0m-[0m[38;2;204;204;0mc[0m[38;2;204;204;0mo[0m[38;2;204;204;0mm[0m[38;2;204;204;0mp[0m[38;2;204;204;0ml[0m[38;2;204;204;0me[0m[38;2;204;204;0mt[0m[38;2;204;204;0mi[0m[38;2;204;204;0mo[0m[38;2;204;204;0mn[0m[38;2;204;204;0m [0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m+[0m [38;2;136;136;136m+[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;204;204;0m [0m[38;2;204;204;0mi[0m[38;2;204;204;0mn[0m[38;2;204;204;0mt[0m[38;2;204;204;0me[0m[38;2;204;204;0mr[0m[38;2;204;204;0ma[0m[38;2;204;204;0mc[0m[38;2;204;204;0mt[0m[38;2;204;204;0mi[0m[38;2;204;204;0mv[0m[38;2;204;204;0me[0m[38;2;204;204;0m [0m[38;2;204;204;0ms[0m[38;2;204;204;0mh[0m[38;2;204;204;0me[0m[38;2;204;204;0ml[0m[38;2;204;204;0ml[0m[38;2;204;204;0m [0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m+[0m [38;2;136;136;136m+[0m[38;2;136;136;136m-[0m[38;2;204;204;0m [0m[38;2;204;204;0mp[0m[38;2;204;204;0mr[0m[38;2;204;204;0mo[0m[38;2;204;204;0mg[0m[38;2;204;204;0mr[0m[38;2;204;204;0ma[0m[38;2;204;204;0mm[0m[38;2;204;204;0mm[0m[38;2;204;204;0mi[0m[38;2;204;204;0mn[0m[38;2;204;204;0mg[0m[38;2;204;204;0m [0m[38;2;204;204;0mq[0m[38;2;204;204;0mu[0m[38;2;204;204;0me[0m[38;2;204;204;0ms[0m[38;2;204;204;0mt[0m[38;2;204;204;0mi[0m[38;2;204;204;0mo[0m[38;2;204;204;0mn[0m[38;2;204;204;0ms[0m[38;2;136;136;136m-[0m[38;2;136;136;136m+[0m
[38;2;136;136;136m+[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m+[0m [38;2;136;136;136m+[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m+[0m [38;2;136;136;136m+[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m+[0m
[38;2;136;136;136m|[0m $ [38;2;0;170;204mc[0m[38;2;0;170;204mu[0m[38;2;0;170;204mr[0m[38;2;0;170;204ml[0m[38;2;0;170;204m [0m[38;2;0;170;204mc[0m[38;2;0;170;204mh[0m[38;2;0;170;204mt[0m[38;2;0;170;204m.[0m[38;2;0;170;204ms[0m[38;2;0;170;204mh[0m[38;2;0;170;204m/[0m[38;2;0;204;0m:[0m[38;2;0;204;0mh[0m[38;2;0;204;0me[0m[38;2;0;204;0ml[0m[38;2;0;204;0mp[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m $ [38;2;0;204;0mv[0m[38;2;0;204;0mi[0m[38;2;0;204;0mm[0m [38;2;0;170;204mp[0m[38;2;0;170;204mr[0m[38;2;0;170;204mg[0m[38;2;0;170;204m.[0m[38;2;0;170;204mp[0m[38;2;0;170;204my[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m $ [38;2;0;204;0mt[0m[38;2;0;204;0mi[0m[38;2;0;204;0mm[0m[38;2;0;204;0me[0m curl cht.sh/ [38;2;136;136;136m|[0m
[38;2;136;136;136m|[0m see [38;2;34;170;34m/[0m[38;2;34;170;34m:[0m[38;2;34;170;34mh[0m[38;2;34;170;34me[0m[38;2;34;170;34ml[0m[38;2;34;170;34mp[0m and [38;2;34;170;34m/[0m[38;2;34;170;34m:[0m[38;2;34;170;34mi[0m[38;2;34;170;34mn[0m[38;2;34;170;34mt[0m[38;2;34;170;34mr[0m[38;2;34;170;34mo[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m ... [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m ... [38;2;136;136;136m|[0m
[38;2;136;136;136m|[0m for usage information [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m zip lists _ [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m real [38;2;34;170;34m0[0m[38;2;34;170;34mm[0m[38;2;34;170;34m0[0m[38;2;34;170;34m.[0m[38;2;34;170;34m0[0m[38;2;34;170;34m7[0m[38;2;34;170;34m5[0m[38;2;34;170;34ms[0m [38;2;136;136;136m|[0m
[38;2;136;136;136m|[0m and README.md on [38;2;0;170;204mG[0m[38;2;0;170;204mi[0m[38;2;0;170;204mt[0m[38;2;0;170;204mH[0m[38;2;0;170;204mu[0m[38;2;0;170;204mb[0m[38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;34;170;34m<[0m[38;2;34;170;34ml[0m[38;2;34;170;34me[0m[38;2;34;170;34ma[0m[38;2;34;170;34md[0m[38;2;34;170;34me[0m[38;2;34;170;34mr[0m[38;2;34;170;34m>[0m[38;2;34;170;34mK[0m[38;2;34;170;34mK[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m
[38;2;136;136;136m|[0m for the details [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m *awesome* [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m
[38;2;136;136;136m|[0m [38;2;255;0;0m*[0m[38;2;255;0;0ms[0m[38;2;255;0;0mt[0m[38;2;255;0;0ma[0m[38;2;255;0;0mr[0m[38;2;255;0;0mt[0m[38;2;255;0;0m [0m[38;2;255;0;0mh[0m[38;2;255;0;0me[0m[38;2;255;0;0mr[0m[38;2;255;0;0me[0m[38;2;255;0;0m*[0m[38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m [38;2;136;136;136m|[0m
[38;2;136;136;136m+[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m [38;2;204;204;0ms[0m[38;2;204;204;0me[0m[38;2;204;204;0ml[0m[38;2;204;204;0mf[0m[38;2;204;204;0m-[0m[38;2;204;204;0md[0m[38;2;204;204;0mo[0m[38;2;204;204;0mc[0m[38;2;204;204;0mu[0m[38;2;204;204;0mm[0m[38;2;204;204;0me[0m[38;2;204;204;0mn[0m[38;2;204;204;0mt[0m[38;2;204;204;0me[0m[38;2;204;204;0md[0m [38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m+[0m [38;2;136;136;136m+[0m[38;2;136;136;136m-[0m [38;2;204;204;0mq[0m[38;2;204;204;0mu[0m[38;2;204;204;0me[0m[38;2;204;204;0mr[0m[38;2;204;204;0mi[0m[38;2;204;204;0me[0m[38;2;204;204;0ms[0m[38;2;204;204;0m [0m[38;2;204;204;0mf[0m[38;2;204;204;0mr[0m[38;2;204;204;0mo[0m[38;2;204;204;0mm[0m[38;2;204;204;0m [0m[38;2;204;204;0me[0m[38;2;204;204;0md[0m[38;2;204;204;0mi[0m[38;2;204;204;0mt[0m[38;2;204;204;0mo[0m[38;2;204;204;0mr[0m[38;2;204;204;0m![0m [38;2;136;136;136m-[0m[38;2;136;136;136m+[0m [38;2;136;136;136m+[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m [38;2;204;204;0mi[0m[38;2;204;204;0mn[0m[38;2;204;204;0ms[0m[38;2;204;204;0mt[0m[38;2;204;204;0ma[0m[38;2;204;204;0mn[0m[38;2;204;204;0mt[0m[38;2;204;204;0m [0m[38;2;204;204;0ma[0m[38;2;204;204;0mn[0m[38;2;204;204;0ms[0m[38;2;204;204;0mw[0m[38;2;204;204;0me[0m[38;2;204;204;0mr[0m[38;2;204;204;0ms[0m [38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m-[0m[38;2;136;136;136m+[0m
[38;2;136;136;136m[[0m[38;2;136;136;136mF[0m[38;2;136;136;136mo[0m[38;2;136;136;136ml[0m[38;2;136;136;136ml[0m[38;2;136;136;136mo[0m[38;2;136;136;136mw[0m[38;2;136;136;136m [0m[38;2;136;136;136m@[0m[38;2;136;136;136mi[0m[38;2;136;136;136mg[0m[38;2;136;136;136mo[0m[38;2;136;136;136mr[0m[38;2;136;136;136m_[0m[38;2;136;136;136mc[0m[38;2;136;136;136mh[0m[38;2;136;136;136mu[0m[38;2;136;136;136mb[0m[38;2;136;136;136mi[0m[38;2;136;136;136mn[0m[38;2;136;136;136m [0m[38;2;136;136;136mf[0m[38;2;136;136;136mo[0m[38;2;136;136;136mr[0m[38;2;136;136;136m [0m[38;2;136;136;136mu[0m[38;2;136;136;136mp[0m[38;2;136;136;136md[0m[38;2;136;136;136ma[0m[38;2;136;136;136mt[0m[38;2;136;136;136me[0m[38;2;136;136;136ms[0m[38;2;136;136;136m][0m[38;2;136;136;136m[[0m[38;2;136;136;136mg[0m[38;2;136;136;136mi[0m[38;2;136;136;136mt[0m[38;2;136;136;136mh[0m[38;2;136;136;136mu[0m[38;2;136;136;136mb[0m[38;2;136;136;136m.[0m[38;2;136;136;136mc[0m[38;2;136;136;136mo[0m[38;2;136;136;136mm[0m[38;2;136;136;136m/[0m[38;2;136;136;136mc[0m[38;2;136;136;136mh[0m[38;2;136;136;136mu[0m[38;2;136;136;136mb[0m[38;2;136;136;136mi[0m[38;2;136;136;136mn[0m[38;2;136;136;136m/[0m[38;2;136;136;136mc[0m[38;2;136;136;136mh[0m[38;2;136;136;136me[0m[38;2;136;136;136ma[0m[38;2;136;136;136mt[0m[38;2;136;136;136m.[0m[38;2;136;136;136ms[0m[38;2;136;136;136mh[0m[38;2;136;136;136m][0m
cheat.sh-0.0~git20220418.571377f/share/vim.txt 0000644 0000000 0000000 00000001411 14227330375 016654 0 ustar root root " To use cheat.sh from your vim, install the cheat.sh-vim plugin from David Beniamine
" located at https://github.com/dbeniamine/cheat.sh-vim.
" See the page for the configuration options and the magic key combinations.
"
" ## Vizardry
"
" If you have Vizardry installed, you can run from vim:
"
" Invoke -u dbeniamine cheat.sh-vim
"
" ## Vundle
"
" Add the following to your Vundle Plugin list and do InstallPlugins:
"
" Plugin 'dbeniamine/cheat.sh-vim'
"
" ## Pathogen
"
" If you are using Pathogen, Run the following command in shell:
"
" git clone https://github.com/dbeniamine/cheat.sh-vim.git ~/.vim/bundle/cheat.sh-vim
"
" ## Quick install
"
" git clone https://github.com/dbeniamine/cheat.sh-vim.git
" cd cheat.sh-vim/
" cp -r ./* ~/.vim
cheat.sh-0.0~git20220418.571377f/share/static/ 0000755 0000000 0000000 00000000000 14227330375 016612 5 ustar root root cheat.sh-0.0~git20220418.571377f/share/static/stealth-mode.gif 0000644 0000000 0000000 00001275242 14227330375 021704 0 ustar root root GIF89a ,
" XD z
B
O
G~vH }PY!"aA((((-d0134{^999:p<^N????~@@@ABCDEEDFD@GHHJKNKGCKKKKvKyMIFQQQQSVUUXXXX[Z[_`__{`aa a
bWbbeefedfimfhocOpppps^Jtw;tustvwvvyfPyzcHzjHznI|eP|||}eU}iV~aE~eOaGcKfKdOcKdOiIfO_FaFbHdJkZbScKH3ϛ̸贳ČŅņÌÕąĈĊĄŋōþ~ĆĈ O!NETSCAPE2.0 !
!-Created with ezgif.com video to GIF converter , , ƍ3Q3P2#Ŋjq 1bȐh$2Z>e6qެysDZ #ʣ*TzʈhМ95mԐ֬dZѩȟ5imۑ!qn]cū/߿w0'>1dڐC6c
8AQ㦌ӨONz֤CM۸sͻNȓV[Kӭ[[}N>;ZϾϷ?=7o]+J)RJ'p]B}'vz܇݇!rˉ(,0(4֨".Tu[|uc^zbH&Lr(O"TViXf\v`)dih#ƛY9FdwK))x|"x!*<(*6ʨ+@
gt2d)̢,*ꨭҩЩRʁzX*P*誼`):)®)X2U*˜'ˎR(H{ʪZ궭"RIm~{n誫nf㼷koޫoo +plpJl-.tlFX!^} {]G-lr(r,r0,s4ls8߬sˠ}Xҵn{eÝI.8j.o`o7G/WomA.fJ:C:J۫o HL p2miSj xV%v Imzت20LJlOLxBdP6Odв,W-YwD͆7j9[
h.q9#pb3\Jq UE+kiN1PFMmUe