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

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

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

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

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

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

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

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

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

Внешний вид

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

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

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

Подписаться на блог
Поделиться
Отправить
Запинить
1 комментарий
Костя Кореньков

Спасибо, интересно. Ещё удобно добавить системный шорткат отображения/скрытия для терминала. В любой программе «тыц» — и вот он, терминал. «Тыц» ещё раз — скрылся. На манер консоли в Quake.

Игорь Адаменко

Когда-то у меня было такое на Арче и Убунте. На Маке я в основном работаю с несколькими рабочими столами (сейчас восемь, например), и терминал всегда в одном из них открыт, причём так, что он или слева, или справа от IDE. Потому по кнопке не вызываю.

Но если кому-то понадобится, то скорее всего на Маке ему в этом поможет Automator, а на Линуксах это обычно Ctrl + Alt + T.

Ваш комментарий
адрес не будет опубликован

ХТМЛ не работает

Ctrl + Enter
Популярное