По результатам опроса примерно 15 человек будут понимать о чём пойдёт поздний тред

👇👇👇
Если у вас в планах на этот вечер семья/прогулки/друзья, то пролистывайте, вам всё равно не понравится ¯\_(ツ)_/¯
Если же вы опять накатываете арч потому что внешний монитор перестал работать от дока, то добро пожаловать, мы подружимся🤗
Маленький спойлер, сижу на маке, поэтому про линукс если и будет, то очень мало
А вот и мои дотайлы о которых ниже пойдёт речь

github.com/antonk52/dot-f…
В первую очередь мак хоть и из юникс семь, но часть инструментов, например tar, из коробки BSD'шные, на линуксах они GNU'шные. Это может добавить подводных комней при написании кросплатформленных скритов
То есть 99% API совместимые, но когда вы наступите на этот 1% дебагинг может быть не очевидным
Основным требованием к приложениям является что их можно поставить пакетным менеджером и у них есть конфигурационный файл, в идеале XDG friendly
На маке нельзя заменить родной оконный менеджер 😔

Но есть большое кол-во утили имулирующих нормальные менеджеры
Несколько лет сидел на spectacle, он позволяет раскидать окна шорткатами, но они всё равно могут накладываться друг на друга

github.com/eczarny/specta…
затем еще годик на rectangle, он по сути форк spectacle переписанный на swift

github.com/rxhanson/Recta…
Знаю что аналогичного функционала можно добиться через hammerspoon, но необходимости такой не нашёл
В целом жилось терпимо, но двигать окна руками при открытии приложений? like a f...g caveman
Хотелось найти адекватный тайловый менеджер и после очередных раскопок нашёлся аметист (поговаривают что похож на xmonad, но я не проверял)

github.com/ianyh/Amethyst
Пользуюсь им меньше года, но радости полные штаны. Даже не смотря на то что он работает поверх macos accessibility API (есть заметная визуальная задержка), это большой шаг в сторону желаемого результата
Так же есть такое популярное решение, но до него еще не дошли руки

github.com/koekeishiya/ya…
Как можно догадаться я не люблю тыкаться в GUI, поэтому настройку нового мака предпочитаю делать скриптом, не все знают что так можно делать в маке

github.com/antonk52/dot-f…
с переездом на big sur что то из этого, конечно же🙂, поломалось, но скилл полезный, особенно учитывая что не всё можно настроить через GUI'ёвые настройки макос
Если вам интересно как называется интересующая настройка из GUI, что бы задать её в терминале, можно сравнить настройки до и после
Теперь про шорткаты⌨️

Для настройки кастомных шорткатов на макос есть карабинер, можно поставить через brew и хранить настройки в json'инене

github.com/pqrs-org/Karab…
Правило номер один - смапить capslock в escape

Это не только сделает жизнь удобнее, но так же повысит вас до "a polite internet citizen"
Пару версий назад в макос появилась родная настройка на то что бы перемапить капс в одну из других 5ти клавишь, но так оказалось удобнее
И да, я в курсе, что от капса не обязательно совсем избавляться и через карабинер можно тоглить капс например одновременным нажатием на оба шифта на клавиатуре
Второе правило проще, набор шорткатов на часто испольуемые приложения

fn + a - открыть alacritty
fn + y - открыть яндекс браузер
fn + t - открыть телеграм и тд
Посмотреть на карабинер конфиг можно тут

github.com/antonk52/dot-f…
🖥 теперь го про терминал
До последнего сидел на iterm2 и в целом всё устраивало, миллион настроек, играйся сколько хочешь, даже лигатуры работали. Только играть с этим можно только через GUI. Синкать их между машинками не занимательно
На сегодня если вы хотите себе терминал на макос, который не iterm2 и есть поддержка XDG_CONFIG_HOME и еще хотелось бы что бы он был кроссплатформленный(когда нибудь я съеду с макос), то у вас очень простой выбор

kitty vs alacritty
Оба варианта крутые с упрямыми визионеры ментейнерами, респект 💪
Kitty - всё как положено, даже поддержка лигатур есть

github.com/kovidgoyal/kit…
Но на макос есть проблема с вертикальной отцентровкой некоторых шрифтов, и туда попал мой любимый шрифт firacode (виртуальный респект респект @nikitonsky)
У Alacritty такой проблемы я не встретил, невероятно прлавный скролл😍 и простенький конфиг на ямле 👌

github.com/alacritty/alac…
Пришлось чуть чуть покопаться что бы воскресить работу шорткатов с alt + num, а вот и сам конфиг

github.com/antonk52/dot-f…
Из проблем:
- пока не починили, но уже есть фикс для ctrl+/ на макос
- увы пока нет лигатур и на горизонте их не видно
🐚 в качесте шела стоит zsh без дополнительных обёрток, вроде бы ничего интересного в конфиге нет

github.com/antonk52/dot-f…
Относительно недавно отказался от ohmyzsh, не то что бы он мешал, но оказолось что он нормально так отедал от стартапа, с ним 0.4с, после 0.1с, выбор очевиден, теперь пара плагинов лежат в репозитории дотфайлов в качестве гит сабмодулей
Можно упороться чуть больше и сделать ленивую подгрузку уже после того как отрисуется промпт, но 0.1 секунда меня вполне устраивает
Для промпта стоит pure-prompt, немнодко подкрутив настроечки он стал настолько меня устраивать, что и смотреть в сторону других не хочется

github.com/sindresorhus/p…
Субъективно выглдяит проще чем рекламируется.

При переходе в вим режим редактирования команды, ▲ превращается в ✔︎ 🤗
Теперь и локально не могу отучить себя от использования tmux

github.com/tmux/tmux
Начать пользоваться смотивировала необходимость в разработке на удалённом сервере
После того как разобрался с ним, теперь у меня 2 тмакс сессии, локально и удалённо. В локальной сессии есть окошко в которой подключён к удалённой машинке на которой запущена вторая сессия
Что бы одинаковый префикс прокидывался во внутреннюю сессию можно нажать его дважды или завести шорткад на прокидывание внутрь, как тут

github.com/antonk52/dot-f…
Не самый известный факт, но в 3.1 они наконец поддержали XDG_CONFIG_HOME
И заключающая тема на сегодня - vim ✅
лет 5 назад имел необходимость трогать руками большие дампы баз данных 2Gb+

на тот момент актуальный саблайм мог открыть такой файл за 30 секунд 🥱

атом(еще в альфе) за 2минуты+ 😴

а в виме файл открывался за пару секунд и можно было начать что то делать 😳
Мой полный путь получился

sublime 👉 sublime + vim 👉 macvim 👉 term vim 👉 neovim
После появления асинхронных работ в неовиме жизнь уже не была прежней, стали появляться адекватные автокомплитеры и плагины для работы с LSP 🙌
Даже не смотря на классную работу ментейнеров и наличие встроенного LSP в 0.5 ветке неовима, всё равно считаю coc.nvim лучшей альтернативой, потому что это по сути форк vscode'овского LSP встроенного плагина
github.com/neoclide/coc.n…
Это значит что при необходимости можно крайне просто портануть большинство вскод плагинов. К примеру мне как то показали плагин для прыжков к css модулям

marketplace.visualstudio.com/items?itemName…
классная штука, но ПРы висят месяцами и работает только с голым css с поддержкой одного препроцессора(из трёх) и без поддержки nesting
Ну что же, одним форком больше и теперь у счастливых виммеров автокомплиты и go-to-definition'ы работают с любыми препроцессорами и даже разрезанные nesting'ом

А вот и сам плагин
github.com/antonk52/coc-c…
Вскод бояре, законтрибютье ваш плагин, сделайте себе жизнь удобнее 🙂
TLDR идеи, coc.nvim позволяет переиспользовать всё богатство жс экосистемы живущее в npm, можно и ремоут плагины писать, но это уже сильно популярная платформа с достойным DX
Сам конфиг живёт тут, из интересных фактов, в нём соблюдена максимальная совместимость с vim 7.4(удалённая разработка), каких то продвинутых вещей может не быть graceful degradation, я же фронтендер всё так

github.com/antonk52/dot-f…
еще будет 2 подтемы в этом треде
- удобство
- startuptime
Болезненной ошибкой может быть в самом начале перебайндить какие то родные команды и в дальнейшем узнать что на них было что то полезное, а пальцы переучивать больно
Поэтому всё чего вам не хватает байндим на лидер или локаллидер

Для удобства лидер можно сделать пробелом, на нём всё равно всегда лежит один палец и в нормальном режиме он не делает ничего полезного
Возможности конфигурации этого редактора должны удовлетворить любого любителя конфигов, но если вам этого мало, то скорее всего вы недостаточно близко познакомились с командой :help
На случай если остался еще кто то, то еще одна пачка твитов про startuptime
Как и многие в какой то момент я заигрался с плагинами и у меня получилось собрать почти IDE, то есть открывалось всё заметно не быстро, попрофелировав это занимало 450ms кхе кхе вебшторм
Поэтому немножко разобрался что у меня было такого чем я не пользовался и что мне оказалось не нужным
Для профилирования есть встроенный флаг --startuptime, немного расписал про это тут

github.com/antonk52/webde…
первым подруку попался nerdtree, как и многие пришедшие из GUI редактора мне нехватало шуфлядки с файлами, nerdtree меня устраивал, если он у вас стоит, то попробуйте открыть node_moduels и поставте лайк, когда откроется

github.com/preservim/nerd…
остановится на встроенном netrw у меня не вышло, но под руку попался молниеносный dirvish, в котором было почти всё

github.com/justinmk/vim-d…
Нехватало только нескольких nertree like команд, которые добил своим плагином и того -125ms от старта

github.com/antonk52/dirvi…
Потом пошли статуслайны, простой переход на минималистичный lightline срезал порядка 50ms от запуска

github.com/itchyny/lightl…
По отчёту запуска нашёл что загружать словари для грамматической проверки написания комментариев это дорого, поэтому начал подгружать их лениво, где это поддерживается, я всё еще фронтендер

github.com/antonk52/dot-f…
Вытащил лишние настройки в autoload и начал лениво запускать coc.nvim, выходит что редактор с раскаршеным файлом отрисовывается быстрее, а следом становятся умнее, прямо как в браузере с гидрацией
Последним шагом оказался g:did_install_default_menus, отрезал еще -100ms от запуска

github.com/antonk52/dot-f…
После занимательных ковыряний я остался доволен результатом ~100ms, можно задаться вопросом к чему так упарываться, но об этом я уже расскажу в другой день, если кому то это актуально
Раньше еще dreamweaver был, с тех пор обладаю фобией сложных и загруженных интерфесов 😱

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with jsunderhood

jsunderhood Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @jsunderhood

19 May
Уже не утренний тред про чаты и сообщества, поехали

👇👇👇
Что бы не избежать недопонимания давайте сразу договоримся о формулировке

чат - вопросы и ответы незнакомцев
сообщество - чат где коммюнити общаются на свои темы
Раньше я любил тусоваться в чатах, помогал людям, было интересно узнать про проблемы технологий и в чём заключается непонимае со стороны пользователей
Read 6 tweets
18 May
Чего общего 1х1 с руководителем имеют с обучением?

👇 Маленький тред👇
На этой встерче можно и нужно обсуждать не только зарплаты/бонусу/конфликты и тд. Эта встерча нужна так же для вашего развития 📈
Если вы джун/мидл и у вас есть постоянные встречи с вашим руководителем/техлидом/менеджером и вы их пропускаете, потому что нет тем для обсуждений - зря
Read 8 tweets
18 May
Давайте научимся учиться 🤓

👇 тред 👇
Самое глупое что я могу написать тут, это просто рассказать о том как я учу новый материал и для большинства* это будут бесполезные знания 🤔
Поэтому сначала нужно разобраться с вашим стилем принятия унформации. Ключевая-гуглящаяся аббревиатура - VARK
Read 24 tweets
17 May
Первый тред недели будет про подготовку к публичным выступлениям 📝

👇👇👇
Я пишу много заметок для себя и часто их накапливается критическое кол-во и они перерастают в всодержимое доклада. Ниже несколько из докладов, что я расказывал на внешнюю аудиторию
Немножко про вебпак 🧐

Read 61 tweets
17 May
Привет!
Меня зовут Антон Кастрицкий - @AntonK52, на этой неделе будем общаться про доклады, обучение, чаты, типизацию, качество жизни и, может быть, про вим.

Чем я занимаюсь? 👇
Работаю в Партнёрских Интерфейсах Яндекс.Маркета, иногда читаю доклады на конференциях, но чаще копаюсь в конфигах.
Работаю в ПИ последние 3+ лет, последние полгода работаю руководителем и посещаю много встреч🗓

(если не отвечаю вам до 6ти вечера, это и есть причина, не обижайтесь)
Read 4 tweets
30 Apr
Давайте под конец рабочей недели поговорим о ведении технического (и не только) блога!

- Зачем вообще вести, как начать писать;
- Насколько глубоко уходить в тех. детали в постах;
- Свой хостинг или блогоплатформа;
- Русский или английский язык.

Кидайте ссылки на свои блоги!
Расскажите, ведёте ли вы свой блог?
как начинали?
что подтолкнуло?
что для вас самое сложное?
какие плюшки вы от блога получаете?
Я пока начну и расскажу о своём блоге:
bespoyasov.ru/blog/

Начал я его вести примерно тогда же, когда начал работать. Правда, самые первые посты не сохранились, мой первый пост сейчас 2012 года.

Причин «зачем это надо» могу назвать штук 6. Сейчас пройдёмся по каждой :–)
Read 81 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(