Подписка на блог

Ещё есть Тумблер и ЖЖ.

В  Телеграме пишу обо всяком и собираю по крупицам годноту, которая потом появляется в блоге.

А в  Твиттере иногда репощу всякие смехуечки и пишу о том, как всё плохо.

Все остальные соцсеточки только для того, чтобы пошарить ссылку на новый пост.

3 заметки с тегом

zsh

npm.plugin.zsh v1.1

Обновил свой плагин для zsh, который добавляет кучу разных сокращений для npm, о котором я когда-то рассказывал.

Теперь он при запуске nrsh! удаляет не только npm-shrinkwrap.json, но и package-lock.json. Давно пора было это допилить, но я чего-то медлил.

Помимо этого добавились ещё два сочетания:

  • nrpl! делает то же самое, что и nrsh!, а нужен потому, что возможно уже сейчас есть те, кто не знают, что npm-shrinkwrap.json существовал;
  • ns для npm search.

О том, как обновить (или установить, если вы вдруг почему-то ещё не) написано в репозитории.

2018   npm   zsh   гитхаб

Про Гитхаб

Я тут вдруг понял, что не рассказывал никогда в блоге про то, что есть у меня на Гитхабе. Исправляюсь.

Вообще, я сегодня на коленке набросал один npm-пакет, и хотел написать коротко про него, но потом понял, что может быть имеет смысл рассказать обо всём интересном, что есть. Почему бы и нет.

Вот список того, что может вам как-то пригодиться:

  • university
    Все файлы (кроме учебников), которые у меня сохранились после обучения в университете. Возможно, если вы учитесь на схожей специальности, вы что-то там найдёте для себя.
  • npm-ls-analysis
    Небольшой скрипт, который берёт выдачу npm ls и собирает из неё массив с информацией по каждому пакету: сколько раз он встречается и каких версий. Можно посмотреть, сколько разных версий какого-нибудь postcss установлено. ¯\_(ツ)_/¯
  • inherited-css-properties
    Просто список стилевых свойств, которые наследуются. Когда-то я так и не смог его нигде найти, и решил самостоятельно собрать в одном месте.
  • whatcolourisit
    Это как минимум красиво — igoradamenko.com/whatcolourisit.
  • advblock
    Я терпеть не могу разного рода «консультанты» на сайтах. Особенно, когда они выскакивают и назойливо перехватывают моё внимание. Потому я собираю их в отдельном фильтре для Адблока (или любого другого совместимого блокировщика). Если вас они тоже бесят, добавляйте фильтр в настройки своего расширения, как написано в репе.
  • npm.plugin.zsh
    Набор сокращений для запуска npm-скриптов. ni, nid, nis, nrm и всё вот это вот (тут ещё я могу напомнить о том, как у меня вообще терминал работает).
  • jira.plugin.zsh
    Ещё один плагин, но на этот раз не для npm, а для того, чтобы переходить из терминала в таски в Джире. Основная его фича — распознавать код задачи в имени гит-ветки, и открывать её в браузере. Удобно.
  • awsm.css
    Про эту стилевую библиотеку я уже писал. Делает красивой вашу некрасивую, но семантичную вёрстку.
  • bem-react-helper
    Скрипт, который каждый день помогает мне готовить вёрстку по БЭМ в Реакте. Круче чем всё, чем вы пользовались до этого, конечно же.
  • zoom-gesture
    То, о чём я изначально собирался написать. Мне тут сразу в двух проектах понадобилось сделать обработку зума, как с помощью скролла мышки, так и с помощью пинч-жеста. Сделяль ¯\_(ツ)_/¯. Если вам вдруг внезапно тоже нужно, приходите, берите, пишите о багах, если будут.
2017   awsm.css   css   npm   zsh   бэм   гитхаб   джира   я

Ежедневные инструменты. Терминал

В повседневной работе программиста есть два момента, ради которых все мы здесь и собрались. Первый — когда ты что-то написал, и оно работает. Иногда достаточно даже самого процесса. Второй же, это когда ты настроил что-то вокруг себя так, что оно экономит кучу времени и позволяет сосредоточиться на первом. Об этом сегодня и поговорим.

По моим наблюдениям, любовь к настройке окружения и инструментария отличает интересного программиста от неинтересного. Не стоит путать с хорошим и плохим. Под интересным я подразумеваю того, у кого горят глаза и которому хочется постоянно что-то делать. И с ним всегда есть что обсудить, и у него постоянно есть истории о том, как он сутками что-то настраивал, и в конце конечно же настроил. Иногда это переходит некую грань, за которой начинается бахвальство, но сегодня, опять же, не об этом. Сегодня об инструментах.

Поскольку я так или иначе работаю на фронтенде, инструментов у меня прям вагон и ещё несколько тележек. И кажется, что с каждым днём их всё больше и больше. Сегодня поговорим о части из них, которая не завязана конкретно на вёрстку, а скорее про организацию процесса и про красоту — о терминале. Об остальном как-нибудь в следующий раз. Начнём с красоты.

Внешний вид

Много рабочего времени приходится на командную строку. Постоянно надо искать какие-то файлы, что-то ребейзить, что-то запускать, создавать, редактировать и удалять. Поэтому терминал должен давать максимальное количество информации, но, между тем, не быть какой-то помойкой из ненужных данных. К тому же сама программа должна уметь манипулировать вкладками, их раскладкой, сохранением сессий и всем таким.

Я для всего этого использую iTerm 2, потому что это лучшее, чем я пользовался. Он умеет всё, о чем было выше.

В качестве самого шелла у меня Zsh, потому что плагины, огромное количество шорткатов, темы и всё такое. Сверху накручен Oh-My-Zsh, в котором из коробки уже всё прекрасно, а если чуть-чуть докрутить, то получается совсем красиво.

Цветовая схема самого Айтерма — немного изменённая Solarized Dark (мой пресет). В качестве темы для Zsh использую Powerlevel9k. Выглядит прям клёво:

Настройка темы, если вдруг вам захочется такую же:

POWERLEVEL9K_SHORTEN_DIR_LENGTH=2
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(time)
POWERLEVEL9K_TIME_BACKGROUND="black"
POWERLEVEL9K_TIME_FOREGROUND="249"
POWERLEVEL9K_SHORTEN_DIR_LENGTH=4

Ещё вроде бы важно, какие используются шрифты (иконки там и всё такое). Вот так это выглядит в Айтерме:

Шрифты: Fira Mono, SourceCodePro+Powerline+Awesome+Regular.

Плагины

Большая часть плагинов уже шла с Oh-My-Zsh, но некоторое установлены отдельно.

autojump

Добавляет шорткат j для перехода по директориям по частичному совпадению, т. е., например j awsm переведёт меня в ~/Projects/awsm.css. Замечу, что сам autojump нужно ставить отдельно.

Если описывать чуть подробнее, то эта тулза хранит все ваши переходы с учётом их веса, т. о., например, j f переводит меня в ~/FunBox, а j fr в ~/Projects/frontend-confs, потому что у первого вес больше, чем у второго.

git

Добавляет огромное количество сокращений типа gaa, gc, gp, gl, grbi, gcp и пр., которыми я пользуюсь каждый день. Они видны на скрине выше.

git-extras

Добавляет полсотни команд для Гита, из которых я иногда использую только summary, count, effort и прочие подобные, потому что люблю статистику.

jira

Позволяет переходить в задачу в Джире из командной строки. К тому же умеет находить код задачи в названии ветки, что позволяет открывать необходимую задачу простой командой jira.

npm

Добавляет огромное количество маленьких команд вида: ni, nis, nrm, nls, nts, nres!, которые прям мега-удобны.

sublime

Добавляет два шортката для Саблайма: st и stt.

sudo

Удобная штука, которая добавляет sudo в начало текущей или прошлой команды при двойном нажатии на Esc.

urltools

Кодирует и декодирует урл по RFC 1738. Полезно, когда копируешь кривые ссылки на Википедию, например.

websearch

Добавляет команды типа google и duckduckgo, которыми я почти не пользуюсь, но иногда бывает удобно (грепнул непонятную ошибку и сразу загуглил).

zsh-autosuggestions

Подсказывает ранее набранные команды по введённым первым символам:

zsh-syntax-highlighting

Подсвечивает синтаксис всех вводимых команд. Его работу можно увидеть на первом скрине в посте.

Использование

Окно терминала у меня всегда открыто на весь экран (отдельный рабочий стол в макОСи), а там внутри уже всё, что нужно, разруливается вкладками (⌘1, ⌘2, и т. д.) или делением окна на несколько частей вертикально или горизонтально. Удобнее, чем в отдельном окне, хотя это вопрос привычки. Кому-то быстрее просто переключать окна по ⌘Tab.

Единственный минус Айтерма — вкладки скрываются даже при наведении на них. То есть, их можно или всегда показывать, или всегда скрывать. Но если в скрытом режиме хочется их переместить, то потянув за одну из вкладок (они на время отображаются при переключении), можно «не успеть» вставить её на нужное место (остальные исчезнут раньше), и Айтерм подумает, что вы не перемещаете, а вытаскиваете эту вкладку на отдельное окно. Такой вот кривоватый дизайн ¯\_(ツ)_/¯

Но лечится описанная проблема просто. Нажав ⇧⌘T включаете отображение вкладок, затем перемещаете как нужно, и снова прожимаете этот шорткат, чтобы скрыть вкладки.

Кажется, про терминал всё. Продолжение следует :-)