mirror of
https://github.com/chubin/cheat.sh
synced 2024-11-12 22:37:06 +00:00
216 lines
7 KiB
Text
216 lines
7 KiB
Text
## curl cht.sh
|
|
|
|
To access a cheat sheet you can simply issue a plain HTTP or HTTPS request
|
|
specifying the topic name in the query URL:
|
|
|
|
{1curl cheat.sh}{2/tar}
|
|
{1curl https://cheat.sh}{2/tar}
|
|
|
|
You can use the full service name, {2cheat.sh}, or the shorter variant, {2cht.sh}.
|
|
They are equivalent:
|
|
|
|
{1curl https://}{2cht.sh}{1/tar}
|
|
{1curl https://}{2cheat.sh}{1/tar}
|
|
|
|
The preferred access protocol is HTTPS, and you should use it always when possible.
|
|
|
|
Cheat sheets in the root namespaces cover UNIX/Linux commands.
|
|
|
|
Cheat sheets covering programming languages are located in subsections:
|
|
|
|
{1curl cht.sh/}{2go/func}
|
|
|
|
All cheat sheets in a subsection can be listed using a special query {2:list} :
|
|
|
|
{1curl cht.sh/go/}{2:list}
|
|
|
|
There are several other special queries. All of them are starting with a {2colon}.
|
|
See {2/:help} for the full list of the special queries.
|
|
|
|
|
|
## Search
|
|
|
|
If a cheat sheet is too large, you can cut the needed part out using an
|
|
additional search parameter. In this case, only the paragraph that contains the
|
|
search term will be displayed:
|
|
|
|
{1curl cht.sh/tar}{2~extract}
|
|
|
|
If the name of the cheat sheet is omitted, and only the serch query is specified,
|
|
all cheat sheets in the namespace are scanned, and the found occurrencies
|
|
are displayed:
|
|
|
|
{1curl cht.sh/}{2~extract}
|
|
|
|
|
|
## Options
|
|
|
|
cheat.sh queries as well as search queries have many options.
|
|
They can be specified as a part of the query string in the URL, after {2?}.
|
|
Short single letter options could be written all jointly together,
|
|
and long options are separated with {2&}. For example, to switch
|
|
syntax highlighting off the {2T} switch is used:
|
|
|
|
{1curl cht.sh/tar}{2?T}
|
|
|
|
Full list of all available cheat.sh options as well as description of all modes
|
|
of operation can be found in {2/:help},
|
|
|
|
{1curl cht.sh}{2/:help}
|
|
|
|
|
|
## cht.sh client
|
|
|
|
Though it's perfectly possible to access cheat.sh using {1curl} (or any other
|
|
HTTP client) alone, there is a special client, that has several advantages
|
|
comparing to plain curling: {2cht.sh}.
|
|
|
|
To install the client in {2~/bin}:
|
|
|
|
{1curl} {2https://cht.sh/:cht.sh} {1> ~/bin/cht.sh}
|
|
{1chmod +x ~/bin/cht.sh}
|
|
|
|
Queries look the same, but you can separate words in the query with {1spaces},
|
|
instead of {1+} as when using curl, what looks more natural:
|
|
|
|
{1cht.sh} {2python zip lists}
|
|
|
|
|
|
## cht.sh shell
|
|
|
|
If you always issuing queries about the same programming language, it's can be
|
|
more convenient to run the client in the shell mode and specify the queries
|
|
context:
|
|
|
|
{1$} {2cht.sh --shell python}
|
|
{1cht.sh/python> zip lists}
|
|
|
|
Of course, you can start the shell without the context too:
|
|
|
|
{1$} {2cht.sh --shell}
|
|
{1cht.sh> python zip lists}
|
|
{1cht.sh> go http query}
|
|
{1cht.sh> js iterate list}
|
|
|
|
If you use predominantly one language but sometime issuing queries about other,
|
|
you may prepend the query with {2/}:
|
|
|
|
{1cht.sh/python>} {2zip lists}
|
|
{1cht.sh/python>} {2/go http query}
|
|
{1cht.sh/python>} {2/js iterate list}
|
|
|
|
|
|
## :learn
|
|
|
|
If you are just start learning a new programming language, and you have no
|
|
distinct queries for the moment, cheat.sh can be a good starting point too. As
|
|
you know, it exports cheat sheets from the best cheat sheet repositories, and
|
|
one of them is {1Learn X in Y}, a repository of concise documentation devoted
|
|
to learning programming languages from scratch (and not only them).
|
|
|
|
If you want start learning a new programming language, do (use less -R because
|
|
the output could be quite big):
|
|
|
|
{1curl cht.sh/elixir/}{2:learn} {1| less -R}
|
|
|
|
Or simply {2:learn} with cht.sh (you don't need {2less -R} here, because
|
|
{1cht.sh} starts pager if needed automatically):
|
|
|
|
{4cht.sh/elixir>} {2:learn}
|
|
|
|
|
|
## Programming languages questions
|
|
|
|
One of the most important features of cheat.sh is that you can ask it any
|
|
questions about programming languages and instantly get answers on them. You
|
|
can use both direct HTTP queries or the cht.sh client for that:
|
|
|
|
{1curl cht.sh/}{2python/reverse+list}
|
|
|
|
{4cht.sh/python>} {2reverse list}
|
|
|
|
In the latter case you don't need + to separate the words in the query, you can
|
|
do it in a more natural way, with spaces.
|
|
|
|
If context in the cht.sh shell is not specified, you have to write the
|
|
programming language name as the first word in the query:
|
|
|
|
{4cht.sh>} {2python reverse list}
|
|
|
|
But if you are using only one programming language and all queries are about
|
|
it, it's better to change the current context and
|
|
|
|
|
|
## Comments
|
|
|
|
Text in the answers is syntactically formatted as comment in the correspondent
|
|
programming language
|
|
|
|
When using cht.sh, you can copy the result of the last query into the selection
|
|
buffer (you may also call it "clibpoard") using {2C} (or {2c}, with text):
|
|
|
|
{1cht.sh/python> reverse list}
|
|
{4...}
|
|
{1cht.sh/python>} {2C}
|
|
{4=1 lines copied}
|
|
|
|
|
|
## bash TAB-completion for cht.sh
|
|
|
|
One of the advantages of the {1cht.sh} client comparing to plain curl is that you
|
|
can use TAB completion when writing its queries in {1bash}
|
|
(other supported shells: {1zsh} and {1fish}).
|
|
|
|
Install the TAB completion script for that. Assuming you use bash, you have to do:
|
|
|
|
{1mkdir -p ~/.bash.d/}
|
|
{1curl} {2https://cht.sh/:bash_completion} {1> ~/.bash.d/cht.sh}
|
|
{1echo 'source ~/.bash.d/cht.sh' >> ~/.bashrc}
|
|
{1source ~/.bash.d/cht.sh}
|
|
|
|
|
|
## Editor
|
|
|
|
You can access cheat.sh directly from editors: {1Vim} and {1Emacs}.
|
|
It's a very important feature! You should absolutely like it.
|
|
|
|
{1Imagine:}
|
|
instead of switching to your browser, googling, browsing Stack Overflow
|
|
and eventually copying the code snippets you need and later pasting them into
|
|
the editor, you can achieve the same instantly and without leaving
|
|
the editor at all!
|
|
|
|
Here is how it looks like:
|
|
|
|
1. In Vim, if you have a question while editing a program, you can just type
|
|
your question {1directly in the buffer} and press {2<leader>KK}. You will get
|
|
the answer to your question in {1pager}. (with {2<leader>KB} you'll get the answer
|
|
in a separate {1buffer}).
|
|
|
|
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 {2<leader>KP} to paste it under
|
|
your question ({2<leader>KR} will replace your question). If you want the
|
|
answer without the comments, {2<leader>KC} replays the last query
|
|
toggling them.
|
|
|
|
You have to install cheat.sh {1Vim/Emacs plugins} for the editor support.
|
|
See {2/:vim} or {2/:emacs} with the detailed installation instructions.
|
|
|
|
|
|
## Feature requests, feedback and contribution
|
|
|
|
If you want to submit a new community driver repository for cheat.sh please
|
|
open a ticket on the project page on GitHub.
|
|
|
|
If you want to modify an existing cheat sheet, please check the source of the
|
|
cheat sheet (it is always displayed in the cheat sheet bottom line).
|
|
|
|
If you want to add a new cheat sheet, add it here:
|
|
{1https://github.com/chubin/cheat.sheets}
|
|
|
|
If you want to suggest a new feature for cheat.sh, or if you've found a bug,
|
|
please open a new issue on github:
|
|
{1https://github.com/chubin/cheat.sh}
|
|
|
|
If you want to get the major project updates, follow @igor_chubin in Twitter
|
|
or this RSS feed: {1https://twitrss.me/twitter_user_to_rss/?user=igor_chubin}
|