Как разбить терминал на несколько «видов»?

264

С vi, если выполнить команду :sp, экран разделяется на два «мнения», что позволяет редактировать более одного файла из того же терминала.

Наряду с этим, есть ли способ открыть несколько оболочек в одном терминале?

Джастин этир
источник

Ответы:

351

Вы можете сделать это в screenтерминальном мультиплексоре.

  • Разделить по вертикали: ctrlaпотом |.
  • Чтобы разделить по горизонтали: ctrlaзатем S(заглавные 's').
  • Расстегнуть: ctrlaзатем Q(заглавные буквы 'q').
  • Чтобы переключиться с одного на другое: ctrlaтогдаtab

Примечание: После расщепления, необходимо перейти в новую область и начать новую сессию через ctrlaто , cпрежде чем вы можете использовать эту область.

РЕДАКТИРОВАТЬ, основное использование экрана:

  • Новый терминал: ctrlaтогда c.
  • Следующий терминал: ctrlaпотом space.
  • Предыдущий терминал: ctrlaпотом backspace.
  • N-й терминал ctrlaтогда [n]. (работает для n∈ {0,1… 9})
  • Переключение между терминалами с помощью списка: ctrlaзатем " (полезно, когда более 10 терминалов)
  • Затем отправьте ctrlaна базовый терминал .ctrlaa
shellholic
источник
18
Tmux также делает это, и многие терминальные программы имеют разделенные представления и вкладки.
Шон Дж. Гофф
3
@AaronNewton ctrl+aтогда отпустите все тогда shift+s(не знаю для блокировки заглавных букв, моя отключена)
Shellholic
4
Ctrl A Shift Sразделяет экран, затем Ctrl A Tabпереключается на другое разделение и Ctrl A cсоздает приглашение bash. Есть ли в любом случае, чтобы эти команды запускались автоматически при запуске, screenчтобы нам не приходилось запускать команды постоянно.
Майкл Батлер
2
Какая версия экрана для вертикального разделения? Я установил версию 4.00.03, которая совпадает с последней доступной загрузкой со всех зеркал, которые я проверял.
Брайан Ванденберг
1
Как сделать одно из моих вертикальных окон шире другого? Я хочу как 30 | 30 | 40 раскол.
Мпен
108

Попробуйте tmux (терминал MUltipleXer):

скриншот tmux

И понять разницу между session, windowи pane: tmuxnestings

Йонатан Маман
источник
20
Экран против Tmux? tmux, вероятно, лучше для продвинутого использования и более современен, но экран установлен везде и работает просто отлично.
user606723
Другие полезные tmuxсправочные ресурсы: введение , конфигурация , учебник для начинающих и шпаргалка .
not2qubit
1
@ user606723 среди прочего, конфигурация Tmux действительно читабельна; не как собака перевернулась на клавиатуре. Конечно, вы можете обойтись подобной оболочкой byobu(которая охватывает оба терминальных мультиплексора), но Tmux, кажется, превосходит по нескольким аспектам, кроме конфигурации. И уже превосходил несколько лет назад. Экран нуждался в исправлениях для разделения обоих направлений, и Tmux получил его из коробки. И последнее, но не менее важное: лицензия может быть аргументом для Tmux или Screen, в зависимости от того, где вы находитесь.
0xC0000022L
1
@ user606723 с 2019 года, это больше не так. screenотсутствует в относительно свежей установке Fedora 30, пока tmuxприсутствует.
Сора.
64

Как уже упоминалось в комментариях, помимо экрана, еще одним хорошим терминальным мультиплексором является tmux . Вы можете обратиться к руководству для полного описания и справочника команд. Некоторые основные операции для начала:

  • Разделить экран по вертикали: CtrlbиShift5
  • Разделить экран по горизонтали: CtrlbиShift"
  • Переключение между панелями: Ctrlbиo
  • Закрыть текущую панель: Ctrlbиx

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

  • Создать окна: Ctrlbиc
  • Перейти к следующему окну: Ctrlbиn
  • Переключиться на предыдущее окно: Ctrlbиp
  • Уничтожить текущее окно: CtrlbиShift7
dkaragasidis
источник
3
Обратите внимание, что вы можете изменить префикс tmux на что-то более легкодоступное, чем <Cb>.
21

Если вам нужна программа, которая просто разбивает терминал¹, есть splitvt . Существуют программы, которые разделяют терминал и делают много других вещей, таких как Screen, Tmux, Emacs,…

¹ Это терминал вы разделив, не оболочка.

жилль
источник
+1, хороший момент о том, как терминал на самом деле разделяется.
Джастин Этье
19

Помимо отличных советов по Screen и Tmux, если вы используете какой-то оконный менеджер, вас может заинтересовать Terminator, вы можете разделить моды по горизонтали или вертикали, а также вкладки и многое другое ... вот список функций, взятых с веб-сайта автора :

  • Расположите терминалы в сетке
  • Вкладки
  • Перетаскивание переупорядочения терминалов
  • Много сочетаний клавиш
  • Сохранить несколько макетов и профилей через редактор настроек GUI
  • Одновременный набор на произвольные группы терминалов

Посмотрите скриншоты на сайте проекта.

Самое главное, вы можете объединить Terminator с Screen / Tmux.

alemani
источник
2
Обратите внимание, что использование разделителей Terminator будет менее удобным при копировании между двумя окнами вашего редактора.
Гб.
Вы можете редактировать несколько панелей сразу после группировки панелей (или просто выбрать все сразу), а также можете отредактировать ярлыки для переключения панелей. Я имею ctrl-shift-h/j/k/lдля перемещения между панелями, и Ctrl- (Shift) -Tab для переключения между вкладками, он просто работает потрясающе.
sjas
1
хорошо, мы можем нажать на них, чтобы сосредоточиться; но все еще не могу найти способ равномерно распределить терминалы в сетке, это просто беспорядок, который нужно исправить вручную, также мне нужно динамически добавлять терминалы, поэтому обновлять их в равномерно распределенной сетке, вы понимаете?
Водолей Сила
Terminator - это программа X-windows, а не программа командной строки, такая как tmux и screen. ОП особо упоминается same terminalдважды, поэтому терминатор или тиликс (как упомянуто @sjas) не являются хорошими предложениями. Если вы находитесь в сеансе ssh с удаленным сервером без X-сервера, вы не сможете даже запустить эти инструменты.
haridsv
8

Konsole для KDE имеет встроенную функцию :

  • Ctrl+ (разделить вид влево / вправо

  • Ctrl+ )разделить вид сверху / снизу

  • Shift+ Tabбудет циклически проходить через разделенные виды

  • Shift+ Left Arrow/ Right Arrowпрокручивает текущий вид по вкладкам / представлениям

  • Ctrl+ Shift+, Xчтобы закрыть текущий вид

MrUser
источник
Знаете ли вы сочетания клавиш для переключения между разделенными панелями в консоли?
LangeHaare
1
@LangeHaare SHIFT + TAB будет циклически переключаться между панелями просмотра
chaptuck
7

Используйте терминатор .

Должен быть доступен через ваш любимый менеджер пакетов, если вы используете основной дистрибутив.

Это единственный терминальный мультиплексор, в котором копирование вставляется правильно из панелей вашего окна.

Обновление: tilixэто terminatorальтернатива, которая почти полностью соответствует терминатору (и где копирование также работает должным образом). После оценки я все еще придерживаюсь terminatorиз-за более хорошей обработки вкладки и более легкой конфигурации (от моего POV).

sjas
источник
Терминатор технически не является мультиплексором: «Терминальный мультиплексор является программным приложением, которое можно использовать для мультиплексирования нескольких виртуальных консолей, позволяя пользователю получить доступ к нескольким отдельным сеансам терминала в одном окне терминала или сеансе удаленного терминала». (из Википедии)
erb
Это также не единственный мультиплексор, в котором копирование вставляется правильно из панелей, tmux прекрасно справляется с правильной конфигурацией.
erb
@erb - что именно нужно настроить, если я не хочу выбирать полные строки, которые охватывают несколько терминалов при тройном щелчке, и почему это не нормальная настройка по умолчанию?
sjas
1
Вы можете использовать режим копирования в tmux для копирования, если вы хотите использовать мышь, вам нужно только включить поддержку мыши, моя конфигурация с ней находится здесь: github.com/ErikBjare/dotfiles/blob/master/home/. tmux /… Если вы хотите использовать системный буфер обмена в режиме копирования, посмотрите это: unix.stackexchange.com/questions/131011/…
erb
2
А? Почему нет? Вы можете заставить его работать почти точно (если не точно) так же, как при выборе в терминаторе. Раньше я был пользователем терминатора по той же причине, когда я закончил настройку, я никогда не оглядывался назад и теперь могу сэкономить довольно много ОЗУ и других ресурсов, переключившись на более легкий эмулятор терминала, так как копирование было единственным, что меня раздражало.
erb
4

Гуаке + Бёбу

Я счастливый пользователь Guake с Byobu внутри, который по умолчанию используется tmux( вероятно, лучше, чем screen).

Три шага

  1. Установите их (PPA не нужны ни в Ubuntu, ни в Debian, проверьте другие дистрибутивы )

    sudo apt install guake byobu
  2. Добавьте его в доступные оболочки (как я уже говорил в этом выпуске Guake Github ):

    which byobu | sudo tee -a /etc/shells
  3. В настройках Guake ( guake-prefs) выберите Byobu в качестве переводчика по умолчанию: образ


  1. Необязательно: Снимите флажок «Показать панель вкладок», так как для этого вы будете использовать Byobu:

    образ

  2. Если ярлык не работает, попробуйте отключить Guake, который может помешать (в моем случае это Ctrl+F2вертикальное разделение): Скриншот

Другие предложения

  1. Узнайте ярлыки с Shift+ F1или этот отличный скринкаст .
  2. Узнать доступные команды терминала byobu с apropos byobu
  3. Чтобы использовать клавиши fn в Midnight Commander, используйте Alt+ или Shift+ F12для отключения byobu F-клавиш.

Скриншот

Пабло А
источник
2

Попробуйте вертикальное разделение экрана GNU

Этот патч предоставляет функцию вертикального разделения для текущих выпусков экрана GNU. Функция предназначена для работы таким же образом, как существующая команда разделения экрана, но делит области по вертикали, а не по горизонтали. Обе формы разделения могут использоваться вместе в любом желаемом сочетании / количестве / порядке. Нечто подобное должно появиться в GNU Screen 4.1 в ближайшее время и уже доступно в CVS для этой ветки списка рассылки (и было включено в пакеты экрана Debian и Ubuntu, начиная с 4.0.3-10). Кроме того, недавний проект под названием ScreenWM разработан специально для работы с залатанным экраном vsplit (зацените!).

Narga
источник
Чтобы быть более конкретным, Ctrl+|разбивает screenв Ubuntu сразу.
Джонатан Острем