Введение, которое можно не читать
Современному программисту, а тем более новичку уровнем ниже junior, адово необходимо умение пользоваться поисковиком. Вроде ничего сложного в этом нет, но тем не менее на вопросниках частенько всплывают вопросы, на которые уже давно есть ответ в первой вкладке из выдачи поисковика. Почему так? Неопытность, лень — причин много. Нас интересует лень, давайте немного упростим и автоматизируем процесс «гугления».
Собственно, сама суть
Итак, представляю вам сервис «cheat.sh». Написан он на Python, так что питонисты могут заинтересоваться. Существует несколько его реализаций:
- Через «curl» в командной строке;
- Через браузер.
- Через редакторы кода: Emacs, Vim, Sublime Text, VSCode.
Как использовать
Используя «curl»
Здесь нужно иметь утилиту «curl». В дистрибутивах Linux она уже есть, для Windows её нужно устанавливать отдельно. Проблем на Windows у меня не возникло.
Заходим в консоль и отправляем запрос такого типа:
curl cht.sh/[язык]/[запрос-с-дефисом-вместо-пробела]
Получаем ответ:
$ curl cht.sh/python/how-to-read-text-file
# How to read a text file into a list or an array with Python ...
#
# You will have to split your string into a list of values using split()
#
# So,
lines = text_file.read().split(',')
# [Achrome] [so/q/14676265] [cc by-sa 3.0]
Изначально утилита задумывалась как шпаргалка по командам для терминала Linux, поэтому можно искать справку по ним:
$ curl cheat.sh/tar
$ curl cht.sh/curl
$ curl https://cheat.sh/rsync
$ curl https://cht.sh/tr
Ещё можно установить консольную утилиту:
$ curl https://cht.sh/:cht.sh > ~/bin/cht.sh
$ chmod +x ~/bin/cht.sh
Пример использования здесь.
Для Windows таких команд нет, поэтому есть вариант использовать Cygwin, Git bash и так далее.
На ваш страх и риск.
Используя браузер
Просто переходим по нужной ссылке в браузере.
На примере www.cht.sh/python/how-to-read-text-file
Ссылку можно отправить в качестве ответа на Stackoverflow, к примеру.
Используя редакторы кода
Зачем? Чтобы не выходя из редактора получить копипастом код решения.
Плагин для Emacs,
Плагин для Sublime Text,
Плагин для Vim,
Плагин для VSCode.
Интересности
Авто-дополнение на Tab
Установка для Bash:
$ curl https://cheat.sh/:bash_completion > ~/.bash.d/cht.sh
$ . ~/.bash.d/cht.sh
$ # and add . ~/.bash.d/cht.sh to ~/.bashrc
Установка для ZSH:
$ curl https://cheat.sh/:zsh > ~/.zsh.d/_cht
$ echo 'fpath=(~/.zsh.d/ $fpath)' >> ~/.zshrc
$ # Open a new shell to load the plugin
Параметры ответа
Если вам не нужна подсветка синтаксиса в ответе:
curl cht.sh/python/open-file?T
Если вам нужен только код без комментариев:
curl cht.sh/python/open-file?Q
Вы можете это комбинировать:
curl chr.sh/python/open-file?QT
Стелс-режим
Открываем клиентскую версию с параметром «--shell» и используем:
$ cht.sh --shell [язык программирования]
$ stealth [параметры]
Зачем? Чтобы быстро получить ответ. Автор предлагает использовать такое на дистанционных собеседованиях. Тут лишь вопрос вашей собственной совести.
One-line решения
curl cht.sh/[язык]/1line
Тут даже для Python есть. Да-да, для языка, где разделением блоков кода является перевод строки.
Странности языков программирования
curl cht.sh/[язык]/weirdness
Посмотреть другой ответ
Если вас не устроил текущий ответ на ваш запрос, можете посмотреть другой:
curl cht.sh/[язык]/[запрос]/[номер ответа]
И что, с помощью одной утилиты можно выучить основы языка?
$ curl cht.sh/[язык]/:learn
Заключение
В общем-то, всё. Возможно, кто-то уже знает о «cht.sh» и использует, но на русском я не нашёл нормальных материалов о нём. На GitHub есть таблица полноты «cht.sh» по языкам, ссылки на плагины для редакторов и полное руководство, если кого-то не устроило моё. Спасибо, что прочли.
Автор: ZXZs