Про двух Иванов. Инструменты для редактирования
Я редактировал первые 30 выпусков подкаста «Два Ивана (название обсуждается)» — https://doubleivan.mave.digital, пока не устал. Вот, какими инструментами.
Начинал с Audacity. Мы с Ваней записывали локально дорожки, потом он мне пересылал и я уже миксовал.
Потом перешёл на Reaper. В это время мы уже пересели в Riverside.fm. Там было удобно, что всё в браузере и не надо локально ничего записывать. Пару раз Риверсайд нас всё-таки подводил — обрывал записи или в записи было очень плохое качество, хотя на "звонке" нормальное.
Последним был Ferrite на айпаде. Риверсайд остался, но в Reaper было неудобно. Я нашёл вот это видео — https://www.youtube.com/watch?v=fUTOx3Dxhds, где чел как во Fruit Ninja Эпл Пенсилом распиливает и склеивает дорожки. Меня это настолько впечатлило, что я купил Ferrite и на нём редачил примерно с 20 по 30 выпуски.
И потом я устал и мы начали отдавать на редактуру ребятам из Coworcast — https://coworcast.ru/, там же, где периодически пишемся. У них хороший ценник и вообще они котики, рекомендую.
Я редактировал первые 30 выпусков подкаста «Два Ивана (название обсуждается)» — https://doubleivan.mave.digital, пока не устал. Вот, какими инструментами.
Начинал с Audacity. Мы с Ваней записывали локально дорожки, потом он мне пересылал и я уже миксовал.
Потом перешёл на Reaper. В это время мы уже пересели в Riverside.fm. Там было удобно, что всё в браузере и не надо локально ничего записывать. Пару раз Риверсайд нас всё-таки подводил — обрывал записи или в записи было очень плохое качество, хотя на "звонке" нормальное.
Последним был Ferrite на айпаде. Риверсайд остался, но в Reaper было неудобно. Я нашёл вот это видео — https://www.youtube.com/watch?v=fUTOx3Dxhds, где чел как во Fruit Ninja Эпл Пенсилом распиливает и склеивает дорожки. Меня это настолько впечатлило, что я купил Ferrite и на нём редачил примерно с 20 по 30 выпуски.
И потом я устал и мы начали отдавать на редактуру ребятам из Coworcast — https://coworcast.ru/, там же, где периодически пишемся. У них хороший ценник и вообще они котики, рекомендую.
🔥1
Про двух Иванов. Зачем нам (нужна была) фоновая музыка
Всё просто — делаешь фон чуть громче и косяки записи и редактуры меньше слышно.
Так я думал почти год.
А потом осознал, что то, что я называю косяками, на самом деле слышу только я. Потому что прослушивал запись во время редактирования суммарно несколько часов.
И вообще подкасты слушают на х1.7, в машинах и метро. Короче, в плохих условиях, где и речь-то порой плохо слышно.
Так что не парьтесь по вздохам и словам паразитам на записях. А если паритесь, отдайте на редактуру профессионалам и поберегите свои силы на контент-мейкинг.
Всё просто — делаешь фон чуть громче и косяки записи и редактуры меньше слышно.
Так я думал почти год.
А потом осознал, что то, что я называю косяками, на самом деле слышу только я. Потому что прослушивал запись во время редактирования суммарно несколько часов.
И вообще подкасты слушают на х1.7, в машинах и метро. Короче, в плохих условиях, где и речь-то порой плохо слышно.
Так что не парьтесь по вздохам и словам паразитам на записях. А если паритесь, отдайте на редактуру профессионалам и поберегите свои силы на контент-мейкинг.
🔥3👍2👏1
Про двух Иванов. Подготовка для слабаков (вредный совет)
Мы никогда не готовимся, да и вам не советуем. Мы не знаем о чём будет выпуск, да и вам не надо.
Мы же понимаем, что мы все крутые подкастеры. Раз уж сели за микрофоны, значит мы точно будем знать о чём говорить.
А гости, так эти вообще красавчики и всегда могут о себе хорошо рассказать и раскрыться с лучшей стороны. Самые простые выпуски, когда приходят гости — просто спросил как дела, а они сами дальше шпарят контент.
Вы что, думаете, что Лекс Фридман готовится? Или, может быть, Джо Роган? Да-да, рассказывайте. Кому нужны эти продьюсеры? Они же ещё денег за сценарии просят, а потом за пост-обработку. Мы сами лучше знаем, как нам надо.
В общем, подготовка для слабаков. Только экспромт, только безграничная сила неиссякаемой весны творческой энергии.
Мы никогда не готовимся, да и вам не советуем. Мы не знаем о чём будет выпуск, да и вам не надо.
Мы же понимаем, что мы все крутые подкастеры. Раз уж сели за микрофоны, значит мы точно будем знать о чём говорить.
А гости, так эти вообще красавчики и всегда могут о себе хорошо рассказать и раскрыться с лучшей стороны. Самые простые выпуски, когда приходят гости — просто спросил как дела, а они сами дальше шпарят контент.
Вы что, думаете, что Лекс Фридман готовится? Или, может быть, Джо Роган? Да-да, рассказывайте. Кому нужны эти продьюсеры? Они же ещё денег за сценарии просят, а потом за пост-обработку. Мы сами лучше знаем, как нам надо.
В общем, подготовка для слабаков. Только экспромт, только безграничная сила неиссякаемой весны творческой энергии.
👾2
Новый эмоджи-пак — True Editors
Если вы счастливые обладатели премиума и пользуетесь настоящими редакторами кода, то теперь можете сказать об этом всему миру с помощью этих прекрасных эмоджи.
Этакий «I use neovim btw» по-телеграмовски.
P.S.: заявки на тру эдиторы принимаются, пишите в комменты или лс. Сейчас есть такие —📝 📝 📝 📝 📝 📝
https://news.1rj.ru/str/addemoji/TrueEditors
Если вы счастливые обладатели премиума и пользуетесь настоящими редакторами кода, то теперь можете сказать об этом всему миру с помощью этих прекрасных эмоджи.
Этакий «I use neovim btw» по-телеграмовски.
P.S.: заявки на тру эдиторы принимаются, пишите в комменты или лс. Сейчас есть такие —
https://news.1rj.ru/str/addemoji/TrueEditors
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
True Editors
Emojipack with 6 emoji for Telegram Premium subscribers.
💅2⚡1
Про двух Иванов. Невыпущенное
Если вы давний слушатель двух Иванов, то замечали, что выпуски на Мейв и на сайте начинаются с №7.
https://doubleivan.mave.digital/
Дело в том, что первые 6 выпусков мы выкладывали исключительно в слаке Островка, только на внутреннюю аудиторию. А когда решили выходить на внешнюю аудиторию, то они не прошли мою цензуру по качеству звука.
Есть и ещё невыпущенный материал:
- 2023-08-31, который должен был быть №14. Я хотел попробовать новостной формат, но получилось очень скушно. Мы же не Радио-Т.
- 2024-04-25, который должен был быть №27. С Сашей Гончаровым (@blog_pogromista) про автоматизированный найм разработчиков. Но это тот самый раз, когда Риверсайд запорол нам дорожку Саши. А в лайве было ок!
В комменты выложу первые шесть выпусков. Пишите, если они так-то ок и можно выложить. Тогда я ослаблю градус цензуры и бахну официально. Жаль, что без красивых обложек.
Если вы давний слушатель двух Иванов, то замечали, что выпуски на Мейв и на сайте начинаются с №7.
https://doubleivan.mave.digital/
Дело в том, что первые 6 выпусков мы выкладывали исключительно в слаке Островка, только на внутреннюю аудиторию. А когда решили выходить на внешнюю аудиторию, то они не прошли мою цензуру по качеству звука.
Есть и ещё невыпущенный материал:
- 2023-08-31, который должен был быть №14. Я хотел попробовать новостной формат, но получилось очень скушно. Мы же не Радио-Т.
- 2024-04-25, который должен был быть №27. С Сашей Гончаровым (@blog_pogromista) про автоматизированный найм разработчиков. Но это тот самый раз, когда Риверсайд запорол нам дорожку Саши. А в лайве было ок!
В комменты выложу первые шесть выпусков. Пишите, если они так-то ок и можно выложить. Тогда я ослаблю градус цензуры и бахну официально. Жаль, что без красивых обложек.
Расположение попапов оповещений в Obsidian
Мне начали мешать уведомления в Обсидиане после того как установил Obsidian Linter — https://github.com/platers/obsidian-linter. Линтер мне нужен, в первую очередь для того, чтобы перед сохранением файла добавлять created и modified во frontmatter. А после сохранения файла я часто использую иконки в верхней строке и оповещения их закрывают. Приходится ждать, когда оповещение уйдёт или кликать по нему, чтобы ушло побыстрее.
Наверное, для этого есть плагин, потому что встроенной фичи точно нет — https://forum.obsidian.md/t/placement-of-notifications/50331.
Но я, как обычно, решил сначала пофиксить сам, как умею.
Открыл DevTools и нашёл нужный стиль:
Добавил кастомный CSS сниппет:
Теперь попапы оповещений внизу и не мешают.
Мне начали мешать уведомления в Обсидиане после того как установил Obsidian Linter — https://github.com/platers/obsidian-linter. Линтер мне нужен, в первую очередь для того, чтобы перед сохранением файла добавлять created и modified во frontmatter. А после сохранения файла я часто использую иконки в верхней строке и оповещения их закрывают. Приходится ждать, когда оповещение уйдёт или кликать по нему, чтобы ушло побыстрее.
Наверное, для этого есть плагин, потому что встроенной фичи точно нет — https://forum.obsidian.md/t/placement-of-notifications/50331.
Но я, как обычно, решил сначала пофиксить сам, как умею.
Открыл DevTools и нашёл нужный стиль:
.notice-container {
// там ещё много свойств, но нам нужно только это
top: 22px;
}
Добавил кастомный CSS сниппет:
.notice-container {
bottom: 22px;
}
Теперь попапы оповещений внизу и не мешают.
💅2
Про двух Иванов. Записывайте интро в конце
Когда-то какой-то умный ютюбер сказал «записывай интро в конце».
Мы начали делать так в нашем подкасте где-то с 10-го выпуска и это очень удобно, потому что нас с Ваней часто уносит от темы.
Для нас важна не тема, а топик-стартер. Нам нравится исследовать какую-то идею и делать разговор максимально свободным и живым. На мой взгляд это добавляет какой-то местечковости и уюта, чего мы и добиваемся.
Самое классное смотреть на реакции гостей, с которыми мы просто начинаем беседу под запись. А когда отведённое время заканчивается, спустя полтора часа разговоров, мы с Ваней говорим «Ну что? Пишем интро?». Все гости удивляются.
Записывайте интро в конце, потому что вы уже разогреты после разговора и этот заряд лучше настраивает на прослушивание.
Не уверен, будет ли заметно отличие в том, как записано интро на фоне всего остального, но вот вам два выпуска для сравнения:
- Два Ивана №10 (Vim vs IDE) — https://doubleivan.mave.digital/ep-4
- Два Ивана №33 (про CTF) — https://doubleivan.mave.digital/ep-27
Когда-то какой-то умный ютюбер сказал «записывай интро в конце».
Мы начали делать так в нашем подкасте где-то с 10-го выпуска и это очень удобно, потому что нас с Ваней часто уносит от темы.
Для нас важна не тема, а топик-стартер. Нам нравится исследовать какую-то идею и делать разговор максимально свободным и живым. На мой взгляд это добавляет какой-то местечковости и уюта, чего мы и добиваемся.
Самое классное смотреть на реакции гостей, с которыми мы просто начинаем беседу под запись. А когда отведённое время заканчивается, спустя полтора часа разговоров, мы с Ваней говорим «Ну что? Пишем интро?». Все гости удивляются.
Записывайте интро в конце, потому что вы уже разогреты после разговора и этот заряд лучше настраивает на прослушивание.
Не уверен, будет ли заметно отличие в том, как записано интро на фоне всего остального, но вот вам два выпуска для сравнения:
- Два Ивана №10 (Vim vs IDE) — https://doubleivan.mave.digital/ep-4
- Два Ивана №33 (про CTF) — https://doubleivan.mave.digital/ep-27
🌚2
Про двух Иванов. AI инструменты для обработки звука
Пока ещё не дотягивают.
Первые выпуски, записанные на непонятные микрофоны в местах с плохой акустикой, я пропускал через Adobe Podcasts, который в то время был в бете и бесплатным. У записей после обработки были странные артефакты, особенно на звуках-паразитах между фразами «эээ» «иии» — было слышно, как меняется тональность голоса.
Сейчас таких AI инструментов куча. Один из таких встроен в Riverside.fm, где мы записываемся. Но получается плохо.
Ещё одна крутая идея в AI обработке — правишь текст расшировки и вместе с ним меняется и аудио. Вариант такой тулзы в Riverside.fm пока не дотягивает, потому что плохо расшифровывает некоторые фразы.
Повторюсь, что на самом деле многих не парят косяки редактуры или неидеальное качество звука. Так что не скупитесь на нормальный микрофон и не загоняйтесь, как я на старте подкаста.
Главное, что у вас есть — это контент. Content is king.
Пока ещё не дотягивают.
Первые выпуски, записанные на непонятные микрофоны в местах с плохой акустикой, я пропускал через Adobe Podcasts, который в то время был в бете и бесплатным. У записей после обработки были странные артефакты, особенно на звуках-паразитах между фразами «эээ» «иии» — было слышно, как меняется тональность голоса.
Сейчас таких AI инструментов куча. Один из таких встроен в Riverside.fm, где мы записываемся. Но получается плохо.
Ещё одна крутая идея в AI обработке — правишь текст расшировки и вместе с ним меняется и аудио. Вариант такой тулзы в Riverside.fm пока не дотягивает, потому что плохо расшифровывает некоторые фразы.
Повторюсь, что на самом деле многих не парят косяки редактуры или неидеальное качество звука. Так что не скупитесь на нормальный микрофон и не загоняйтесь, как я на старте подкаста.
Главное, что у вас есть — это контент. Content is king.
❤🔥2
Про ЯП. PHP такой «ну верну хоть чего-нибудь»
Предположим у вас есть вот такой объект:
И вы пробуете найти элемент с
Вопрос: что напечатается в echo?
Правильный ответ: первый элемент массива. И в доке это поведение описано:
array_search верёт false. false приведётся к 0 и получится
Да, есть параметр strict, но с уточнением про тип данных. Дальше идут примечания, ворнинги и куча комментов, где ребята делятся, как правильно юзать array_search.
Я что, избалован питоном и го? Почему мне это кажется плохим дизайном?
Предположим у вас есть вот такой объект:
{
"items": [
{
"id": 1,
"name": "New"
},
{
"id": 2,
"name": "Applied"
}
]
}
И вы пробуете найти элемент с
name в значении «Новый» и потом печатаете найденный элемент. Вот так:$key = array_search("Новый", array_column( $data->items, 'name' ))
echo $data['items'][$key]
Вопрос: что напечатается в echo?
Правильный ответ: первый элемент массива. И в доке это поведение описано:
array_search — Searches the array for a given value and returns the first corresponding key if successful
array_search верёт false. false приведётся к 0 и получится
$data['items'][0].Да, есть параметр strict, но с уточнением про тип данных. Дальше идут примечания, ворнинги и куча комментов, где ребята делятся, как правильно юзать array_search.
Я что, избалован питоном и го? Почему мне это кажется плохим дизайном?
🤡4🤯2
Фильтры для RSS фидов
Иногда хочется получать не все новости ресурса, а только часть. У меня есть два примера, как ограничивать спам в RSS.
В Рыбинске есть «Рыбинские известия» — https://gazeta-rybinsk.ru/, но мне у них инетерсно сейчас только про то, когда надолго закрывают мост через Волгу из-за ремонта. Я использую Miniflux (https://miniflux.app/) и настроил для фида известий регулярку
И ещё есть HNRSS для Hacker News, в урле которого я указал порог комментов и апвоутов и теперь получаю только самые "обсуждаемые" и "популярные" новости — https://hnrss.org/newest?comments=50&points=250.
А как вы ограничиваете поток входящих новостей?
Иногда хочется получать не все новости ресурса, а только часть. У меня есть два примера, как ограничивать спам в RSS.
В Рыбинске есть «Рыбинские известия» — https://gazeta-rybinsk.ru/, но мне у них инетерсно сейчас только про то, когда надолго закрывают мост через Волгу из-за ремонта. Я использую Miniflux (https://miniflux.app/) и настроил для фида известий регулярку
(?i)волжский мост.И ещё есть HNRSS для Hacker News, в урле которого я указал порог комментов и апвоутов и теперь получаю только самые "обсуждаемые" и "популярные" новости — https://hnrss.org/newest?comments=50&points=250.
А как вы ограничиваете поток входящих новостей?
Чего хотят все дизайнеры
Мне тут сказали, что каждый дизайнер хочет сделать две вещи:
• секретный плакат
• этикетку для пива
Есть тут дизайнеры? Правду говорят?
Мне тут сказали, что каждый дизайнер хочет сделать две вещи:
• секретный плакат
• этикетку для пива
Есть тут дизайнеры? Правду говорят?
JSONPatch
Частый спор про изменение объекта по API — это как передавать данные. Я встерчал 3 подхода:
• передавать полностью весь объект
• передавать только поля, которые нужно изменить
• отдельные API для изменения конкретных полей объекта
Кто напишет про GraphQL, gRPC и др., тот хрюшка.
Для варианта передачи только полей, которые изменились, нужна какая-то обвязка. В Python сейчас стандарт — Pydantic. Раньше мы мучались с тем, как обрабаывать
Оказывается, есть стандарт — https://jsonpatch.com/. Но и в нём есть, к чему придраться — это то, как указывается путь до ключа
• JSONPath (самый очевидный)
• jq (самый хипстерский)
• JSON Path Expressions в SQL (самый занудный)
• JSONata (не то, чтобы стиль, но заслуживает внимания)
Короче, я хочу JSONPatch, который использует JSONPath для путей.
С другой стороны это мелочи по сравнению с тем, что операции в JSONPatch — это по сути история изменений объекта, которую можно хранить, не храня снапшоты объектов. (вспоминаю django-reversion)
Частый спор про изменение объекта по API — это как передавать данные. Я встерчал 3 подхода:
• передавать полностью весь объект
• передавать только поля, которые нужно изменить
• отдельные API для изменения конкретных полей объекта
Кто напишет про GraphQL, gRPC и др., тот хрюшка.
Для варианта передачи только полей, которые изменились, нужна какая-то обвязка. В Python сейчас стандарт — Pydantic. Раньше мы мучались с тем, как обрабаывать
None, а сейчас есть foo.model_dump(exclude_unset=True). И вроде как всё ок, но это только Python.Оказывается, есть стандарт — https://jsonpatch.com/. Но и в нём есть, к чему придраться — это то, как указывается путь до ключа
path, который напоминает unix-овые пути. А ведь уже есть несколько других стилей:• JSONPath (самый очевидный)
• jq (самый хипстерский)
• JSON Path Expressions в SQL (самый занудный)
• JSONata (не то, чтобы стиль, но заслуживает внимания)
Короче, я хочу JSONPatch, который использует JSONPath для путей.
С другой стороны это мелочи по сравнению с тем, что операции в JSONPatch — это по сути история изменений объекта, которую можно хранить, не храня снапшоты объектов. (вспоминаю django-reversion)
Obsidian Publisher United
Запилил плагин для Obsidian — Publisher United. https://github.com/biozz/obsidian-publisher-united
Сделал свой, потому что не понравились flowershow (https://github.com/datopian/flowershow) и enveloppe (https://github.com/Enveloppe/obsidian-enveloppe).
У меня ещё и киллер-фича есть — публикация в Телегу из Обсидиана. Настраивается через front-matter:
После публикации добавляются ещё два поля для редактирования поста и быстрого перехода, если что:
Аналогично и для публикации в GitHub репозиторий:
Последние 5 постов я уже публикую только с помощью плагина. А первый релиз
Любые идеи и предложения по доработке плагина приветствуются!
Запилил плагин для Obsidian — Publisher United. https://github.com/biozz/obsidian-publisher-united
Сделал свой, потому что не понравились flowershow (https://github.com/datopian/flowershow) и enveloppe (https://github.com/Enveloppe/obsidian-enveloppe).
У меня ещё и киллер-фича есть — публикация в Телегу из Обсидиана. Настраивается через front-matter:
telegram_channel: @biozz_dev
После публикации добавляются ещё два поля для редактирования поста и быстрого перехода, если что:
telegram_message_id: 123
telegram_url: https://news.1rj.ru/str/biozz_dev/123
Аналогично и для публикации в GitHub репозиторий:
github_repo: biozz/test
repo_path: content/blog
Последние 5 постов я уже публикую только с помощью плагина. А первый релиз
v0.0.1 назван в честь первого менеджера Manchester United F.C. — https://en.wikipedia.org/wiki/A._H._Albut.Любые идеи и предложения по доработке плагина приветствуются!
GitHub
GitHub - biozz/obsidian-publisher-united: Obsidian.md plugin to publish notes to various targets
Obsidian.md plugin to publish notes to various targets - biozz/obsidian-publisher-united
🔥1👏1
Про ЯП. Rust такой «— Вам какие скобки? — Да.»
Посмотрите на этот код:
В первой строке все виды скобочек! И читать сложновато.
Лично для меня эталон по читаемости — Go, а по экспрессивности — TypeScript. В Rust будто взяли худшие из этих миров.
А вы когда-нибудь задумывались, почему в английском скобки называются brackets, braces и parenthesis? Заходите за ответом к лингвисту-программисту @lingua_programma. (кстати, канал ведёт кое-кто из Островка, угадайте кто)
Посмотрите на этот код:
fn example_function<T: Fn(i32) -> i32>(arr: &[i32], func: T) -> Vec<i32> {
let mut result = vec![];
for i in 0..arr.len() {
if arr[i] % 2 == 0 {
result.push(func(arr[i]));
}
}
result
}
В первой строке все виды скобочек! И читать сложновато.
Лично для меня эталон по читаемости — Go, а по экспрессивности — TypeScript. В Rust будто взяли худшие из этих миров.
А вы когда-нибудь задумывались, почему в английском скобки называются brackets, braces и parenthesis? Заходите за ответом к лингвисту-программисту @lingua_programma. (кстати, канал ведёт кое-кто из Островка, угадайте кто)
1👾3
Про двух Иванов. Ещё раз про качество звука в подкастах
Всё максимально просто: дрочево с правильным помещением и обработкой — пустая трата времени. Купите микрофон за 30-50к руб., любительско-полупрофессиональный, типа Shure MV7 и не парьтесь. Хватит на несколько лет точно. Или вообще записывайтесь на студии, которая вам потом и отредачит выпуск.
Всё максимально просто: дрочево с правильным помещением и обработкой — пустая трата времени. Купите микрофон за 30-50к руб., любительско-полупрофессиональный, типа Shure MV7 и не парьтесь. Хватит на несколько лет точно. Или вообще записывайтесь на студии, которая вам потом и отредачит выпуск.
👾2👌1
Сейчас будем стримить запись нового выпуска подкаста «Два Ивана (название обсуждается)».
С 13:00 до 14:30 (Мск).
Заходите послушать!
p.s.: в следующий раз пораньше заанонсю!
https://riverside.fm/studio/-s-studio-7iNaa
С 13:00 до 14:30 (Мск).
Заходите послушать!
p.s.: в следующий раз пораньше заанонсю!
https://riverside.fm/studio/-s-studio-7iNaa
Julia Evans
Я подписан по RSS на Julia Evans. Та простота и дотошность с которой она пишет — неповторимы. Стиль уникальный и, на мой взгляд, похож на то, как учатся дети: наивно, но пытливо и с интересом. А в конце всегда по-взрослому — даже если что-то не получилось, есть какой-то понятный вывод.
И зацените её зины про Git, SQL, CSS и много других.
https://jvns.ca/
https://wizardzines.com/
Я подписан по RSS на Julia Evans. Та простота и дотошность с которой она пишет — неповторимы. Стиль уникальный и, на мой взгляд, похож на то, как учатся дети: наивно, но пытливо и с интересом. А в конце всегда по-взрослому — даже если что-то не получилось, есть какой-то понятный вывод.
И зацените её зины про Git, SQL, CSS и много других.
https://jvns.ca/
https://wizardzines.com/
👍2❤1👾1
Маленький редактор и большие файлы
Несмотря на то, что NeoVim позиционируется как маленький и быстрый редактор, всё равно после добавления N плагинов на больших файлах или проектах появляются тормоза.
У меня два примера из практики:
- telescope и rg тормозили на Go проекте с большим vendor-ом
- treesitter медленно красит большие файлы
Проблему с rg получилось решить правильно настройкой
А со второй я сталкиваюсь реже, но сейчас есть плагины, которые вырубают часть фичей, если файл большой:
- https://github.com/LunarVim/bigfile.nvim
- https://github.com/pteroctopus/faster.nvim
Или можно написать свою автокоманду, которая делает тоже самое:
Или вообще запускать NeoVim без плагинов, но я всегда забываю про это —
Несмотря на то, что NeoVim позиционируется как маленький и быстрый редактор, всё равно после добавления N плагинов на больших файлах или проектах появляются тормоза.
У меня два примера из практики:
- telescope и rg тормозили на Go проекте с большим vendor-ом
- treesitter медленно красит большие файлы
Проблему с rg получилось решить правильно настройкой
.rgignore. И дело было, по сути, не в неовиме. https://biozz.dev/blog/neovim-telescope-lag/А со второй я сталкиваюсь реже, но сейчас есть плагины, которые вырубают часть фичей, если файл большой:
- https://github.com/LunarVim/bigfile.nvim
- https://github.com/pteroctopus/faster.nvim
Или можно написать свою автокоманду, которая делает тоже самое:
local function disable_some_features()
vim.cmd('TSBufDisable highlight')
vim.opt.foldmethod = 'manual'
vim.cmd('syntax off')
vim.cmd('filetype off')
vim.opt.undofile = false
vim.opt.swapfile = false
vim.opt.loadplugins = false
end
vim.api.nvim_create_autocmd({"BufReadPre", "FileReadPre"}, {
pattern = "*",
callback = function()
local file_size = vim.fn.getfsize(vim.fn.expand("%"))
if file_size > 512 * 1024 then
disable_some_features()
end
end
})
Или вообще запускать NeoVim без плагинов, но я всегда забываю про это —
nvim --clean.👍2👾1
Need for Speed™ NeoVim. Переключение между файлами
Тру вимеры не пользуются вкладками и держат в голове список открытых буферов, переключаясь между ними через
Нам до тру вимеров далеко и часто бывает так, что нужно сфокусироваться на паре-тройке файлов и не искать их в списке открытых буферов. Есть несколько вариантов, как это сделать.
Как обычно, первый — не париться и замапить
Дальше по уровню нативности — marks. Отметил несколько файлов, потом по ним прыгаешь. Я так и не пристрастился, даже с плагинами, которые делают сами ответки более визуальными, а список — красивым.
Потом пришёл Primagen и придумал Harpoon. А потом переписал его и сделал Harpoon 2. Суть одна — помечаешь файлы, потом хоткеями прыгаешь между ними. Получается как
Кто-то не оценил гарпун и сделал свой вариант — arrow.nvim. А кто-то хотел ещё и красивый интерфейс. Так появились snipe.nvim и tide.nvim. Но олды помнят, что открытые буферы сбоку умел показывать neo-tree.
А вы чем пользуетесь?
Тру вимеры не пользуются вкладками и держат в голове список открытых буферов, переключаясь между ними через
:bn, :ls, :b <n>.Нам до тру вимеров далеко и часто бывает так, что нужно сфокусироваться на паре-тройке файлов и не искать их в списке открытых буферов. Есть несколько вариантов, как это сделать.
Как обычно, первый — не париться и замапить
TAB на следующий буфер, а S-TAB на предыдущий.Дальше по уровню нативности — marks. Отметил несколько файлов, потом по ним прыгаешь. Я так и не пристрастился, даже с плагинами, которые делают сами ответки более визуальными, а список — красивым.
Потом пришёл Primagen и придумал Harpoon. А потом переписал его и сделал Harpoon 2. Суть одна — помечаешь файлы, потом хоткеями прыгаешь между ними. Получается как
:bn и :bp, но только по отмеченным файлам. Don't worry about it © Primagen.Кто-то не оценил гарпун и сделал свой вариант — arrow.nvim. А кто-то хотел ещё и красивый интерфейс. Так появились snipe.nvim и tide.nvim. Но олды помнят, что открытые буферы сбоку умел показывать neo-tree.
А вы чем пользуетесь?
👾2