331

From vi, if you issue the command :sp, the screen splits into two "views", allowing you to edit more than one file from the same terminal.

Along those same lines, is there a way to have multiple shells open in the same terminal?

0

10 Answers 10

438

You can do it in screen the terminal multiplexer.

  • To split vertically: ctrla then |.
  • To split horizontally: ctrla then S (uppercase 's').
  • To unsplit: ctrla then Q (uppercase 'q').
  • To switch from one to the other: ctrla then tab

Note: After splitting, you need to go into the new region and start a new session via ctrla then c before you can use that area.

EDIT, basic screen usage:

  • New terminal: ctrla then c.
  • Next terminal: ctrla then space.
  • Previous terminal: ctrla then backspace.
  • N'th terminal ctrla then [n]. (works for n∈{0,1…9})
  • Switch between terminals using list: ctrla then " (useful when more than 10 terminals)
  • Send ctrla to the underlying terminal ctrla then a.
18
  • 19
    Tmux also does this, and many terminal programs have split views and tabs. Feb 15, 2011 at 16:51
  • 4
    @AaronNewton ctrl+a then release everything then shift+s (don't know for caps lock, mine is disabled)
    – shellholic
    Dec 5, 2011 at 12:43
  • 6
    Ctrl A Shift S splits the screen, then Ctrl A Tab switches to the other split, and Ctrl A c creates a bash prompt. Is there anyway to have these commands run automatically when starting screen so we don't have to run the commands all the time. Sep 19, 2012 at 14:22
  • 2
    Which version of screen for the vertical split? The version I have installed is 4.00.03, which is the same as the latest available download from from all the mirrors I've checked. Oct 14, 2013 at 20:53
  • 1
    How do I make one of my vertical windows wider than the other? I want like a 30|30|40 split.
    – mpen
    Mar 18, 2015 at 22:58
136

Try tmux (Terminal MUltipleXer):

tmux screenshot

And to understand the difference between session, window and pane: tmuxnestings

7
  • 27
    Screen vs tmux? tmux is probably better for advanced usage and is more modern, but screen is installed everywhere and works just fine.
    – user606723
    Apr 11, 2013 at 21:31
  • 3
    Other great tmux help resources are: intro, config, primer and cheat-sheet.
    – not2qubit
    Dec 10, 2017 at 10:49
  • 1
    @user606723 among other things the Tmux configuration is actually readable; not like a dog rolled over the keyboard. Of course you can make do with a wrapper like byobu (which wraps both terminal multiplexers), but Tmux seems to be superior in several aspects other than the configuration. And was already superior several years ago. Screen needed patches for splitting both directions and Tmux had it out of the box. last but not least the license may be an argument for Tmux or Screen, depending on where you stand. May 7, 2018 at 20:59
  • 1
    @user606723 as of 2019, this isn't true anymore. screen is missing from a relatively fresh install of Fedora 30, while tmux is present.
    – Sora.
    Jun 18, 2019 at 11:15
  • Tmux is a great suggestion, this answer is missing an actual answer to the question though (just links to wiki and docs is not an answer). Apr 23, 2020 at 9:39
78

As mentioned in the comments, besides screen, another good terminal multiplexer is tmux. You can refer to the manual for a complete description and command reference. Some basic operations to get started are:

  • Split screen vertically: Ctrlb and Shift5
  • Split screen horizontally: Ctrlb and Shift"
  • Toggle between panes: Ctrlb and o
  • Close current pane: Ctrlb and x

You can achieve more complex layouts by splitting panes. You can also have multiple windows with panes and switch between them.

  • Create windows: Ctrlb and c
  • Switch to next window: Ctrlb and n
  • Switch to previous window: Ctrlb and p
  • Destroy current window: Ctrlb and Shift7
2
  • 3
    Note that you can change tmux's prefix to something easier to reach than <C-b>.
    – user26112
    Apr 7, 2013 at 12:04
  • no manual page command for this tool? so I could write, tmux --help Oct 5, 2020 at 9:19
23

If you want a program that just splits a terminal¹, there's splitvt. There are programs that split a terminal and do a lot of other stuff besides, such as Screen, Tmux, Emacs, …

¹ It's the terminal you're splitting, not the shell.

2
21

Apart from the excellent suggestions on Screen and Tmux if you are using some sort of window manager you may be interested in Terminator you can split horizontally or vertically fashions, plus tabs and more... here's a list of features taken from the author's web site:

  • Arrange terminals in a grid
  • Tabs
  • Drag and drop re-ordering of terminals
  • Lots of keyboard shortcuts
  • Save multiple layouts and profiles via GUI preferences editor
  • Simultaneous typing to arbitrary groups of terminals

Have a look to the screenshots on the project site.

Most important you can combine Terminator with Screen/Tmux.

4
  • 2
    Note that using Terminator splits will be less convenient when copypasting between two windows of your editor.
    – gb.
    Aug 7, 2012 at 2:00
  • You can edit several panes at once after grouping the panes (or just selecting all at once), and you can edit the shortcuts for pane switching just as well. I have ctrl-shift-h/j/k/l for moving between panes, and ctrl-(shift)-tab for switching between tabs, it just works awesome.
    – sjas
    Feb 13, 2016 at 19:57
  • 1
    good we can click on them to focus; but cant still find a way to evenly distribute the terminals in the grid, it is just a mess to be fixed by hand, also I need to dynamically add terminals, therefore get them updated in an evenly distributed grid, any idea? Apr 29, 2016 at 22:24
  • Terminator is an X-windows program, not a command-line program like tmux and screen are. The OP specifically mentioned same terminal twice, so Terminator or tilix (as mentioned by @sjas) are not good suggestions. If you are in an ssh session to a remote server with no X server, you will not be able to even run these tools.
    – haridsv
    May 16, 2019 at 11:39
11

Konsole for KDE has a built in function:

  • Ctrl+( to Split View Left/Right

  • Ctrl+) to Split View Top/Bottom

  • Shift+Tab will cycle through the split views

  • Shift+Left Arrow/Right Arrow will cycle the current view through the tabs/views

  • Ctrl+Shift+X to close the current view

2
  • Do you know the keyboard shortcuts to switch between the split view panes in konsole?
    – LangeHaare
    Nov 22, 2017 at 18:00
  • 1
    @LangeHaare SHIFT+TAB will cycle through the view panes
    – chaptuck
    Feb 19, 2018 at 19:51
8

Use terminator.

Should be available via your favourite package manager, if you use a mainstream distribution.

It is the only terminal multiplexer where copy-pasting works properly from within panes in your window.

Update: tilix is a terminator alternative which is almost completely on par with terminator (and where copypasting works properly, too). After evaluating it I still stick with terminator however due to nicer tab handling and easier configuration (from my POV).

9
  • Terminator is technically not a multiplexer: "A terminal multiplexer is a software application that can be used to multiplex several virtual consoles, allowing a user to access multiple separate terminal sessions inside a single terminal window or remote terminal session." (from Wikipedia)
    – erb
    Feb 13, 2016 at 13:08
  • It is also not the only multiplexer where copy-pasting works properly from within panes, tmux does this just fine with the proper configuration.
    – erb
    Feb 13, 2016 at 13:10
  • 1
    @erb - what exactly do have to configure if I dont want to select complete lines that span several terminals upon triple-clicking and why isnt that the sane default setting?
    – sjas
    Feb 13, 2016 at 13:38
  • 1
    You can use copy-mode in tmux to do copying, if you want to use the mouse you should only need to enable mouse support, my config with it is here: github.com/ErikBjare/dotfiles/blob/master/home/.tmux/… If you want to use the system clipboard with copy-mode see this: unix.stackexchange.com/questions/131011/…
    – erb
    Feb 13, 2016 at 13:46
  • 2
    Huh? Why not? You can get it to work almost exactly (if not exactly) the same way as selecting in terminator. I used to be a terminator user for the same reason, once I got the config done I never looked back and can now save quite some RAM and other resources by switching to a more lightweight terminal emulator since the copying was the only thing annoying me.
    – erb
    Feb 14, 2016 at 1:04
8

Guake + Byobu

Here I wrote a more complete answer.

I'm a happy user of Guake with Byobu inside it, which by default uses tmux (probably better than screen) as backend.

Three steps

  1. Install them (no PPAs needed on Ubuntu/Debian, check for other distros)

     sudo apt install guake byobu
    
  2. Add it to available shells (as told in this Guake Github issue):

     which byobu | sudo tee -a /etc/shells
    
  3. On Guake preferences (guake-prefs) choose Byobu as the default interpreter:

    screenshot

Optionals

  1. Guake

    1. Uncheck "Show tab bar", since you will use Byobu for that:
      image
    2. If a shortcut doesn't work try disabling Guake ones that might interfere (in my case was Ctrl+F2 for vertical split): screenshot
  2. Byobu

    1. Learn shortcuts with Shift+F1 or this excellent screencast.
    2. Learn available byobu terminal commands with apropos byobu
    3. To use Fn keys on Midnight Commander use Alt+ ,or Shift+F12 to disable byobu F-keys.

screenshot

  • For even more happiness use zsh with oh-my-zsh and
  • Test your terminal setup with this test drive (pretty bad for alacritty :( ).
  • I changed local byobu/tmux escape sequence (F9) to Ctrl + h so it doesn't interfere with tmux on a remote server.
2
  • Guake also supports terminal splitting natively for a while now, including splitting hotkeys
    – phil294
    Nov 17, 2020 at 17:54
  • Great! Since 2018. I prefer Byobu/tmux, is much more than the ability to split windows.
    – Pablo A
    Nov 17, 2020 at 19:18
2

Try Vertical Split for GNU Screen

This patch provides a vertical split feature for current releases of GNU Screen. The feature is designed to function in the same manner as screen's existing split command, but dividing the regions vertically instead of horizontally. Both forms of splits can be used together in any combination/quantity/order desired. Something similar is slated to appear in GNU Screen 4.1 soon, and is already available in CVS per this mailing list thread (and has been included in the Debian and Ubuntu screen packages starting with 4.0.3-10). Also, a recent project named ScreenWM is designed specifically to work with a vsplit-patched screen (check it out!).

1
  • To be more specific, Ctrl+| splits the screen in Ubuntu right off the bat. Oct 23, 2016 at 18:17
2

Vim can also be used as a rough terminal multiplexer:

:terminal opens a horizontial split terminal,
:vertical terminal opens a vertical split terminal.

As always the commands can be assigned to keyboard shortcuts.

1
  • 2
    Interesting... this only works in more recent versions though. Nov 9, 2020 at 15:35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .