В КУРСЕ?

Разбираемся в теме

Окно внутри окна: как не путать Neovim, tmux и Zsh

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

Оболочка выполняет команды

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

tmux организует терминальные области

В tmux сеанс объединяет окна, а окно содержит одну или несколько панелей. В панели находится терминал с работающей программой: это может быть оболочка, редактор или другой процесс. Разделение окна tmux позволяет видеть несколько таких областей одновременно. Например, в одной панели открыт Neovim, а в другой работает оболочка, где запускается проверка проекта. Переключение панели меняет место, куда направлен ввод. Оно не означает переход к другому текстовому файлу внутри редактора. Для этого у Neovim существуют собственные средства навигации и представления документов.

Окно редактора показывает буфер

В Neovim буфер содержит редактируемый текст, а окно представляет собой область просмотра буфера. Один буфер можно показывать в нескольких окнах. Поэтому два видимых участка редактора не обязательно означают две независимые копии файла. Вкладки редактора тоже не следует смешивать с окнами tmux. Для диагностики нарисуйте вложенность конкретного рабочего места. Сначала отметьте терминальные панели и программы внутри них, затем окна и буферы редактора. Если команда выполнилась не там, где ожидалось, проверьте активную область и текущую программу. Такой разбор полезнее случайного изменения нескольких конфигураций сразу.

Попробуйте на практике

Постройте бумажную схему рабочего места без установки программ и изменения настроек.

  1. Нарисуйте один сеанс tmux с одним окном и двумя панелями.
  2. В первой панели обозначьте Neovim, во второй — Zsh с ожидающей ввода командной строкой.
  3. Внутри редактора нарисуйте два окна, показывающих один и тот же буфер с текстом.
  4. Для действий перейти к оболочке и посмотреть другую часть текста укажите, на каком уровне должна происходить навигация.

Как проверить результат. Переход к оболочке относится к смене активной панели tmux, а работа с двумя видами одного текста — к окнам редактора. На схеме один буфер может иметь два отображения. Zsh, Neovim и tmux не должны сливаться в одну программу с общим набором команд.

Частые вопросы

Нужны ли все три инструмента одновременно?

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

Почему одинаковая клавиша ведёт себя по-разному?

Ввод обрабатывается активной программой и зависит от её текущего состояния и настроек. В редакторе дополнительно важен режим работы. Сначала выясните, кто получает нажатие, а затем проверяйте соответствующее назначение клавиши.

Самостоятельный разбор темы. Содержание конкретной обучающей программы здесь не представлено.

Зарегистрируйтесь, чтобы уточнить возможность доступа к этому материалу

Зарегистрироваться
← К списку материалов