А можно пожалуйста еще видео, как вы работаете с Astronvim, как переключаетесь между окнами, как настраивается и управляется автоподстановка, как пользоваться сниппетами, а то пока это очень сложно дается. Видел такие видео зарубежных авторов, но там мало, что понятно, был бы очень признателен вам. А за это видео огромное спасибо
У tmux есть раздражающая особенность, связанная с тем как окна в сессии наследуют переменные окружения. КОРОТКО Видимо, tmux-сервер не хранит переменные окружения для каждой сессии. Было бы удобно, если бы окна внутри сессии имели общие переменные окружения, которые наследуются от сервера и обновляются на стороне сервера с каждым новым подключением из новой терминальной сессии. Как, например, сделано в другом терминальном мультиплексоре - screen. ПОДРОБНО Tmux - это клиент-серверное приложение. Сервер tmux может быть долгоживущим. То есть он может быть запущен на удаленной постоянно включенной машине и хранить сессии, к которым пользователь может подключаться с клиентских машин. Проблема заключается в том, что новые окна в tmux наследуют переменные окружения от текущей терминальной сессии, из которой было совершено подключение к сессии tmux. А ранее открытые окна в tmux-сессии будут хранить переменные окружения той терминальной сессии, из которой они были открыты. Эта особенность "изоляции" окон друг от друга и от сервера в рамках одной tmux-сессии вызывает проблемы с изменяемыми при каждом подключении (или со временем) переменными среды. Например, переменная среды DISPLAY, которая отвечает за выбор инстанса X-server'a в Линукс, с помощью которого будут открываться графические приложения из консоли. При подключении к удаленной машине по ssh с опцией поддержки X.org, создаётся новый инстанс X-сервера, имя которого передаётся в эту переменную. Проблема в том, что старые окна tmux хранят имя сервера от предыдущего подключения, соответственно при попытке запустить графическое приложение в старых окнах получишь ошибку. В то же время, если создать новое окно в рамках старой сессии tmux, то оно получит новые переменные окружения и всё будет работать хорошо. Похожая ситуация с переменной KRB5CCNAME, которая хранит путь до тикета аутентификации Kerberos. В итоге для того, чтобы полноценно пользоваться открытии в предыдущей сессии окнами, нужно делать export переменных окружения от новой терминальной сессии в каждом окне сессии tmux.
1. Зачем использовать screen-256color, если это другой мульиплексор? У tmux есть свой terminfo. tmux-256color. 2. Tmux по умолчанию не использует ctrl-a, потому что это префикс исторический использовал первый мультиплексор screen. Чтобы не путаться и можно было бы делать вложенные мультиплексоры. Типа на своей машине запускаешь tmux, заходишь удалённо на другую машину, а там уже screen или наоборот. Удобнее ли а или b? С одной стороны правая рука обычно на мыше, одной левой удобнее использовать ctrl-a и потом нужную кнопку. С другой стороны, часто всё равно приходится руку с мышки убирать. А ctl-b находится ровно посрединне между правой и левой рукой, для её нажатия удобно использовать любую. 3. На capslock удобно делать переключатель русского. Есть в линуксе, macos и в putty. Под виндами так настроить сложнее.
Префикс C-a любят кмк по привычке, это префикс для SCREEN. На самом деле, C-b прекрасен т.к. не конфликтует с С-a в консоли, где он удобен для перехода в начало строки (комбинация Emacs). Да, да, можно нажимать C-a a... Но два нажатия не одно нажатие.
Tmuxp и можно сессии заменить на заранее написанный ямл конфиг, где описать свой флоу. Плюсом можно стартовые команды для каждого элемента прописать, к примеру окружение инициализировать. И много других плюшек имеется
а можно как-то экспортировать сессии и окна, ну и импортировать потом? переезжаешь на другое рабочее место к примеру? у меня штук 8 сессий с 4-6 окнами...
Спасибо большое за видео! Очень полезная инфа. Начал пользоваться tmux сразу после просмотрa! Подскажите, пожалуйста, по поводу быстрого переключения между окнами. Например у меня в одном окне nvim а в другом раннер тестов. И мне постоянно надо переключаться между ними. Быстрый способ судя по видео, это Ctrl + a + 1 и Ctrl + a + 2. Но какая-то это не очень удобная штука для пальцев. Ctrl (на месте Capslock) я жму мизинцем, "a" жму безымянным пальцем. А каким пальцем нажать на 1 и 2? Кисть неестественно выгибается :( Уж тогда проще прыгать через Ctrl + a + n, как по мне. Часто ли вам приходится переключаться между двумя окнами в таком режиме, и какое сочетание используете? И как у вас пальцы с этим справляются?
Использую как раз их. Тебе не нужно нажимать все одновременно. Напиваешься ctrl + a, отпускаешь, возвращаешь руки в нормальное положение и нажимаешь цифру. Точно нажатия комбинации префикса, он ждёт следующей клавиши сколько угодно.
Привет! спасибо за видео! Такой вопрос, у вас были проблемы с копированием и вставкой, когда вы открывали nvim внутри tmux? получается у меня текст скопированный из вне, не вставляется в nvim внутри tmux, но когда просто открыт nvim без tmux, то всё отлично работает
Привет! Антон, спасибо большое за уроки! Подскажите пожалуйста: Можно попросить курс по тестированию (unit) react приложений: redux, router, react-i118n, rtk query. В интернете нет толковых уроков по тому как тестировать, Можно сделать платной - готов приобрести. Спасибо!
@PurpleSchool | Anton Larichev или кто-нибудь, подскажите: на 3:50 ты говоришь нажать Ctrl-b + Шифт-i У меня на Ubuntu не начинается установка. Какой это набор для Ubuntu? Спасибо заранее🙏🤝🙏🤝
Внимательно проверьте куда склонирован репозитория с tpm. Путь указан в конфигурационном файле run '~/.tmux/plugins/tpm/tpm' . У меня была аналогичная проблема, я по невнимательности сделал git clone в home и долго не мог разобраться почему не работает.
на каких клавишах у вас стоит переключения языка? не первый раз вижу что в tmux вешают c+a и в самой системе перенос ctrl -> caps. Вы об этом так же упоминали. так же есть практика ставить переключения языка на caps. Собственно в этом месте у меня возникает конфликт. Как вы переключаете язык?
Возникла проблема почему-то при подключении к сессиям tmux'а перестают работать комбинации клавиш Ctrl + l и Ctrl + c, в обычном эмуляторе всё ок, но внутри тимукса не работают, в чем может быть проблема? К примеру хочу нажатием Ctrl + l в командной строке вызвать команду clear, приходится в ручную писать
Отказался от Tmux, т.к он привносит небольшую задержку. Это хорошо ощущается, если монитор больше 100гц. Сейчас исп. терминальный клиент Kitty, он отлично задействует GPU, работает очень быстро и в нем есть сплиты (Layout). Считать это заменой tmux нельзя, но сплиты - это то, что я больше всего исп. в tmux
@@sylabulus запустить можно, но работать это будет так себе. Особенно если запустить в такой сессии nvim. Перемещение по большим файлам с подсветкой будет заметно тормознутее. Опять же, это почувствуешь на мониторе, который выдает больше 60 гц. Я исп. tmux в основном для менеджмента окон. В kitty есть возможность создавать их тоже, не такая богатая как с исп tmux, но мне хватает.
Привет Столкнулся с такой проблемой, которой не было во vue, а именно если хочешь использовать отдельный файлик с миксинами то нужно держать все модульные файлы стилей вместе с этим файликом или вручную подключать в каждом файле с учетом вложенности, иначе "undefined mixin" во vue легко настроить чтобы он сам их подхватывал и подключал без @import. Может кто знает как сделать, чтобы и модульные стили лежали рядом с компонентом и можно было в них глобальные миксины подключить по какому-то абсолютному пути
Подскажите пожалуйста, как выйти из tmux чтобы все вкладки и сессии сохранились? А то я прописываю в сессии и в одной из открытых вкладок exit и закрывается только вкладка (что логично), а мне надо выйти чтобы все вкладки и сессии остались.
слшуай, я вот пытаюсь поменять тему на другую, меняю, абсолютно ничего не происходит... как это можно исправить? устанавливал, делал всё что только знаю)
@@PurpleSchool я нашел ответ, нужно просто вызвать у tmux команду kill-server и потом уже выбирать новую тему. Ну и тем более ты мне скинул тему по astrovim, а не tmux)))
На сервере да, но на практике на сервер ты не так часто руками что-то должен конфигурировать. Всё что делаешь руками нужно сразу автоматизировать через ansible
@@PurpleSchool причем тут настраивать ;)))) я говорю про разработку прям на выделеном сервере разработки? Или вы думаете что всегда были писи для разработки. Было время когда все делалось только через терминалы;)))))
window manager'ы и layout manager'ы - фсё? повыходили из чата? лет 5 назад пиарили так как будто усирались буквально; все эти compiz и openbox... все? теперь tmux? а что будет еще через 5 лет? очередная залупа в попытке создать видимость профессиональной отрасли "для своих"? все показанное аналогично практически делается испокон веков (со времен ДОСа) через двухпанельные файл менеджеры и сохранение сессий в npp сохранять сессии терминалов? не встречал такой потребности, зачем? там же введены пароли, история команд и т.д. для этого есть во первых .bat скрипты, во вторых специальные оболочки, такие как R script и R studio, либо специально настроенные редакторы типа Sublime с подключенными терминалами, и все сессии там тоже прекрасно будут сохраняться короче, левая туфта; ненужная, лочащая админов на свою инфраструктуру, слепленная воедино (например, vim - это фактически файл енеджер + терминал + редактор + линтер + grep в одной утилите; зачем?) (tmux - это по сути редактор + терминал + оконный менеджер; зачем?) чтобы привыкнуть с таким трудом и потом обнаружить через 5-8 лет что она deprecated?
💬 Telegram канал с полезными советами: t.me/purple_code_channel
Спасибо за видео! Если у кого то не заработало ctrl b sift I - нужно сначала нажать ctrl b, отпустить их, а только потом shift I
@@RomanZharov 👍
Спасибо, я всю неделю мучаюсь, он еще на маке сидит и не понятно, ctrl для windows или именно маковский control😂
@@ponycod в видео именно маковский ctrl - для виндовс не подскажу, тк сам на маке
Спасибо, Антон! Пользуюсь похожим сетапом уже годы, но никак руки не доходили пересмотреть конфиги и что-то улучшить)
@@vpetevotov пожалуйста!
Очень круто и супер полезно, все настроил и радуюсь)))
Спасибо
Антон, спасибо большое, что делитесь своим опытом и качественным контентом!
Спасибо!)
перешел на tmux с session много лет назад и даже н знал о плагинах )). Спасибо.
Пожалуйста 👍
Ох ты, клёвая вещь, я даже не слышал о такой. Обязательно заюзаю.
Супер)
Ух ты! Какой потрясный монтаж!
Спасибо, я старался)
А можно пожалуйста еще видео, как вы работаете с Astronvim, как переключаетесь между окнами, как настраивается и управляется автоподстановка, как пользоваться сниппетами, а то пока это очень сложно дается. Видел такие видео зарубежных авторов, но там мало, что понятно, был бы очень признателен вам. А за это видео огромное спасибо
У tmux есть раздражающая особенность, связанная с тем как окна в сессии наследуют переменные окружения.
КОРОТКО
Видимо, tmux-сервер не хранит переменные окружения для каждой сессии.
Было бы удобно, если бы окна внутри сессии имели общие переменные окружения, которые наследуются от сервера и обновляются на стороне сервера с каждым новым подключением из новой терминальной сессии.
Как, например, сделано в другом терминальном мультиплексоре - screen.
ПОДРОБНО
Tmux - это клиент-серверное приложение. Сервер tmux может быть долгоживущим. То есть он может быть запущен на удаленной постоянно включенной машине и хранить сессии, к которым пользователь может подключаться с клиентских машин.
Проблема заключается в том, что новые окна в tmux наследуют переменные окружения от текущей терминальной сессии, из которой было совершено подключение к сессии tmux.
А ранее открытые окна в tmux-сессии будут хранить переменные окружения той терминальной сессии, из которой они были открыты.
Эта особенность "изоляции" окон друг от друга и от сервера в рамках одной tmux-сессии вызывает проблемы с изменяемыми при каждом подключении (или со временем) переменными среды.
Например, переменная среды DISPLAY, которая отвечает за выбор инстанса X-server'a в Линукс, с помощью которого будут открываться графические приложения из консоли.
При подключении к удаленной машине по ssh с опцией поддержки X.org, создаётся новый инстанс X-сервера, имя которого передаётся в эту переменную. Проблема в том, что старые окна tmux хранят имя сервера от предыдущего подключения, соответственно при попытке запустить графическое приложение в старых окнах получишь ошибку.
В то же время, если создать новое окно в рамках старой сессии tmux, то оно получит новые переменные окружения и всё будет работать хорошо.
Похожая ситуация с переменной KRB5CCNAME, которая хранит путь до тикета аутентификации Kerberos.
В итоге для того, чтобы полноценно пользоваться открытии в предыдущей сессии окнами, нужно делать export переменных окружения от новой терминальной сессии в каждом окне сессии tmux.
Спасибо большое за такое подробное дополнение!
1. Зачем использовать screen-256color, если это другой мульиплексор? У tmux есть свой terminfo. tmux-256color.
2. Tmux по умолчанию не использует ctrl-a, потому что это префикс исторический использовал первый мультиплексор screen. Чтобы не путаться и можно было бы делать вложенные мультиплексоры. Типа на своей машине запускаешь tmux, заходишь удалённо на другую машину, а там уже screen или наоборот. Удобнее ли а или b? С одной стороны правая рука обычно на мыше, одной левой удобнее использовать ctrl-a и потом нужную кнопку. С другой стороны, часто всё равно приходится руку с мышки убирать. А ctl-b находится ровно посрединне между правой и левой рукой, для её нажатия удобно использовать любую.
3. На capslock удобно делать переключатель русского. Есть в линуксе, macos и в putty. Под виндами так настроить сложнее.
Префикс C-a любят кмк по привычке, это префикс для SCREEN. На самом деле, C-b прекрасен т.к. не конфликтует с С-a в консоли, где он удобен для перехода в начало строки (комбинация Emacs).
Да, да, можно нажимать C-a a... Но два нажатия не одно нажатие.
Tmux бомба! Ждём астровим!
👍
Супер контент! А как в терминале вы табом переключаетесь по папкам? Где такая настройка?
@@antonshustikov7974 tab - выбор из вариантов. У меня стоит плагин fzf
Tmuxp и можно сессии заменить на заранее написанный ямл конфиг, где описать свой флоу. Плюсом можно стартовые команды для каждого элемента прописать, к примеру окружение инициализировать. И много других плюшек имеется
Совершенно верно 👍
а можно как-то экспортировать сессии и окна, ну и импортировать потом? переезжаешь на другое рабочее место к примеру? у меня штук 8 сессий с 4-6 окнами...
Вроде модно перетащить ту папку, где он их хранит. Так же есть плагин, который позволяет в JSON описать все и он будет применяться при старте
Спасибо большое за видео! Очень полезная инфа. Начал пользоваться tmux сразу после просмотрa!
Подскажите, пожалуйста, по поводу быстрого переключения между окнами. Например у меня в одном окне nvim а в другом раннер тестов. И мне постоянно надо переключаться между ними.
Быстрый способ судя по видео, это Ctrl + a + 1 и Ctrl + a + 2. Но какая-то это не очень удобная штука для пальцев. Ctrl (на месте Capslock) я жму мизинцем, "a" жму безымянным пальцем. А каким пальцем нажать на 1 и 2? Кисть неестественно выгибается :( Уж тогда проще прыгать через Ctrl + a + n, как по мне.
Часто ли вам приходится переключаться между двумя окнами в таком режиме, и какое сочетание используете? И как у вас пальцы с этим справляются?
Использую как раз их. Тебе не нужно нажимать все одновременно. Напиваешься ctrl + a, отпускаешь, возвращаешь руки в нормальное положение и нажимаешь цифру. Точно нажатия комбинации префикса, он ждёт следующей клавиши сколько угодно.
Привет! спасибо за видео!
Такой вопрос, у вас были проблемы с копированием и вставкой, когда вы открывали nvim внутри tmux?
получается у меня текст скопированный из вне, не вставляется в nvim внутри tmux, но когда просто открыт nvim без tmux, то всё отлично работает
Привет! Проблем не было. Использовал как дефолтный, так и кодифицированный конфиг.
Привет!
Антон, спасибо большое за уроки!
Подскажите пожалуйста:
Можно попросить курс по тестированию (unit) react приложений: redux, router, react-i118n, rtk query. В интернете нет толковых уроков по тому как тестировать, Можно сделать платной - готов приобрести.
Спасибо!
Привет, тестами на фронте не часто занимался, подумаю.
супер
Спасибо!
@PurpleSchool | Anton Larichev или кто-нибудь, подскажите: на 3:50 ты говоришь нажать Ctrl-b + Шифт-i
У меня на Ubuntu не начинается установка. Какой это набор для Ubuntu? Спасибо заранее🙏🤝🙏🤝
Посмотри документацию tpm
Внимательно проверьте куда склонирован репозитория с tpm. Путь указан в конфигурационном файле run '~/.tmux/plugins/tpm/tpm' . У меня была аналогичная проблема, я по невнимательности сделал git clone в home и долго не мог разобраться почему не работает.
на каких клавишах у вас стоит переключения языка? не первый раз вижу что в tmux вешают c+a и в самой системе перенос ctrl -> caps. Вы об этом так же упоминали. так же есть практика ставить переключения языка на caps. Собственно в этом месте у меня возникает конфликт. Как вы переключаете язык?
Стандартно cmd + space (точнее это было стандартом в старой MacOS).
Что за тема у nvim? Напишите пожалуйста.
One dark
привет подскажи пожалуйста как замапить капс на контрол, как ты упоминул при переназначении (макОС)?
В настройках есть пункт - специальные клавиши.
как скачать на виндоус 10, я не понимаю
А есть у tmux возможность одновременно вводить команды в нескольких сплитах?
Не находил такой возможности, но и пока не понимаю применимости)
Возникла проблема почему-то при подключении к сессиям tmux'а перестают работать комбинации клавиш Ctrl + l и Ctrl + c, в обычном эмуляторе всё ок, но внутри тимукса не работают, в чем может быть проблема? К примеру хочу нажатием Ctrl + l в командной строке вызвать команду clear, приходится в ручную писать
Нужно сделать настройки, чтобы эти комбинации вызывали нужные команды в tmux.config
Есть ещё проект ohmytmux. Представляет собой готовые конфиги с удобными хоткеями и оформлением.
Спасибо, гляну)
Что такое клавиша "префикс"?
@@vistar8 зависит от вашей настройки, какую клавишу настроите, та и будет префиксом
Отказался от Tmux, т.к он привносит небольшую задержку. Это хорошо ощущается, если монитор больше 100гц. Сейчас исп. терминальный клиент Kitty, он отлично задействует GPU, работает очень быстро и в нем есть сплиты (Layout). Считать это заменой tmux нельзя, но сплиты - это то, что я больше всего исп. в tmux
Так tmux это консольное приложение, а kitty - сам терминал. Что мешает tmux в kitty запустить?
@@sylabulus запустить можно, но работать это будет так себе. Особенно если запустить в такой сессии nvim. Перемещение по большим файлам с подсветкой будет заметно тормознутее.
Опять же, это почувствуешь на мониторе, который выдает больше 60 гц. Я исп. tmux в основном для менеджмента окон. В kitty есть возможность создавать их тоже, не такая богатая как с исп tmux, но мне хватает.
На линуксе тоже есть Brew
Да, вышел, что удобно
Привет
Столкнулся с такой проблемой, которой не было во vue, а именно если хочешь использовать отдельный файлик с миксинами то нужно держать все модульные файлы стилей вместе с этим файликом или вручную подключать в каждом файле с учетом вложенности, иначе "undefined mixin" во vue легко настроить чтобы он сам их подхватывал и подключал без @import. Может кто знает как сделать, чтобы и модульные стили лежали рядом с компонентом и можно было в них глобальные миксины подключить по какому-то абсолютному пути
Добрый день. Подскажите почему не срабатывает комбинация Ctrl b Shift I ?
А префикс не менял? Она может не работать если строка инициализации tpm находиться не в конце или её вообще нет. Посмотри доку.
Возможно ты пытаешься скомбинировать все 4 клавиши. Попробуй сначала Ctrl+b, затем Shift+i
@@PurpleSchool все другие команды срабатывают после префикса ctrl b. Конфиг добавил ваш. Но установка плагинов не срабатывает
Очень странно, у меня такое было, когда не установлен был tpm или не активирован
Если скопировал данный конфиг, то нужно жать уже не Ctrl+b а Ctrl+а
Подскажите пожалуйста, как выйти из tmux чтобы все вкладки и сессии сохранились? А то я прописываю в сессии и в одной из открытых вкладок exit и закрывается только вкладка (что логично), а мне надо выйти чтобы все вкладки и сессии остались.
Ctrl + B + D
@@PurpleSchool Спасибо!
Что за терминал вы используете?
iTerm 2
@@PurpleSchool Спасибо)
слшуай, я вот пытаюсь поменять тему на другую, меняю, абсолютно ничего не происходит... как это можно исправить?
устанавливал, делал всё что только знаю)
Вот тут инструкция: astronvim.github.io/Recipes/colorscheme
@@PurpleSchool я нашел ответ, нужно просто вызвать у tmux команду kill-server и потом уже выбирать новую тему. Ну и тем более ты мне скинул тему по astrovim, а не tmux)))
Arch > macOS
Каждый раз при запуске tmux создается новая сессия, а я хочу работать с уже созданными... как?)
Если они запущены, то нужно tmux attach. Если хотите сохранить сессии меду перезапусками, указан плагин в видео.
Все эти инструмениы нкжны и удобны не для локальноц работы а для работы на сервере удаленно. Влогинился 1 раз а дальше пошел через tmux все делать
На сервере да, но на практике на сервер ты не так часто руками что-то должен конфигурировать. Всё что делаешь руками нужно сразу автоматизировать через ansible
Локально тоже удобно, например tmux + vim на каждую репу
@@PurpleSchool причем тут настраивать ;)))) я говорю про разработку прям на выделеном сервере разработки? Или вы думаете что всегда были писи для разработки. Было время когда все делалось только через терминалы;)))))
У меня был PC с черно-белым экраном, но все вычисления всё-равно было локально.
Навигировать?!
window manager'ы и layout manager'ы - фсё? повыходили из чата? лет 5 назад пиарили так как будто усирались буквально; все эти compiz и openbox... все? теперь tmux? а что будет еще через 5 лет? очередная залупа в попытке создать видимость профессиональной отрасли "для своих"?
все показанное аналогично практически делается испокон веков (со времен ДОСа) через двухпанельные файл менеджеры и сохранение сессий в npp
сохранять сессии терминалов? не встречал такой потребности, зачем? там же введены пароли, история команд и т.д.
для этого есть во первых .bat скрипты, во вторых специальные оболочки, такие как R script и R studio, либо специально настроенные редакторы типа Sublime с подключенными терминалами, и все сессии там тоже прекрасно будут сохраняться
короче, левая туфта; ненужная, лочащая админов на свою инфраструктуру, слепленная воедино (например, vim - это фактически файл енеджер + терминал + редактор + линтер + grep в одной утилите; зачем?) (tmux - это по сути редактор + терминал + оконный менеджер; зачем?) чтобы привыкнуть с таким трудом и потом обнаружить через 5-8 лет что она deprecated?