habrahabr

Шпаргалка для программистов или «мы погуглим за вас»

  • вторник, 21 августа 2018 г. в 00:18:26
https://habr.com/post/420741/
  • Учебный процесс в IT
  • Софт
  • Программирование
  • Изучение языков
  • Python


Введение, которое можно не читать


Современному программисту, а тем более новичку уровнем ниже 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


image


Ссылку можно отправить в качестве ответа на 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» по языкам, ссылки на плагины для редакторов и полное руководство, если кого-то не устроило моё. Спасибо, что прочли.