Atom is a very good text editor that covers your requirements.
Free and Open-Source
Code completion for the same languages I mentioned above.
Check. Atom is open source and it includes code highlighting for the languages you mentioned. Some auto-completion ...
Terminator is your answer here :) http://gnometerminator.blogspot.co.uk/p/introduction.html
You just right click or use the menu bar to create a near-infinite number of split-screens. It's normally in the repos, so can be installed via sudo aptitude install terminator on Ubuntu/Debian or sudo dnf install terminator on Fedora/CentOS.
All terminals have the ability to split the screen into tiles. You just have to run screen or tmux.
In Screen, press C-a S (that's a capital S) to split the screen into regions. The second region is created below the current one. A popular patch (not available in the antique official release, but included in many distributions and in the source repository) ...
socat has an option to use the gnu readline library on an input. Eg
socat READLINE,history=$HOME/.cmd_history /dev/ttyS0,b19200,raw,echo=0,crnl
This no longer works on Ubuntu and Debian due to licensing incompatibilities.
An alternative readline front-end to any command is rlwrap, which is available on Ubuntu.
I would recommend cmder. It should be everything you need. It offers a 4.27MB version called "Mini" and basically replaces cmd.exe. cmder is basically a nicer looking UI (that you can easily change the window dimensions) of Conemu and includes enhancements from Clink. It's completely portable in its own directory. It also preserves the coloring of Git Bash ...
EDIT: Check out the answers here.
Not a perfect answer, but if you haven't tried it, take a look at Powershell ISE -- which is probably already installed on your system.
As you might get from the name, it's an "Integrated Script Environment", probably more IDE than iTerm. Yet it has many features similar to iTerm2 that make it better in some ways than ...
Sparkfun recommends RealTerm for something like that. I came across RealTerm and this question looking for a similar software. I'm about to fire it up for the first time. I think this software is Windows only.
TeraTerm is awesome for simple ASCII-only
serial terminal stuff, but what if you need to send a string of binary
You can use ConEmu as a console for Cygwin, as well as Windows Command Prompt, Power Shell, msysgit, msys2, mingw, Putty, etc.
Free, gratis & Open Source
Tabbed multiple consoles with different shells
Small download size
Portable version available
Widely used & actively developed
Lots of other goodies like telling you exactly which process is ...
Not sure how portable it can be, and not exactly 'small', but vim does have console (including PowerShell) support.
vile and elvis might also work, though I don't know almost anything about them other than that they're vi clones which support Windows.
A very simple "terminal session manager" is dtach, or the similar newer abduco. They run a command and communicate with it via a Unix domain socket. They allow you to detach from it and reattach to it many times at once. You would first ssh to the machine then attach to the command you left detached earlier. Unfortunately, there is no log of recent output ...
A possible choice is mosh which is a mobile shell which allows you to reconnect to an ssh from different addresses. However, you need to install the server software on each remote. It initially connects through ssh, then starts the mosh server and moves your connection to a UDP data stream to cope with unreliable and slow data connections.
A similar ...
If you go back to the original terminal emulator, xterm, you can specify any actions for the keys. For example,
xterm -xrm 'XTerm*VT100.Translations: #override\n\
~Shift <KeyPress> Prior: scroll-back(1,halfpage)\n\
~Shift <KeyPress> Next: scroll-forw(1,halfpage)\n\
Shift <KeyPress> Prior: string(0x1b)string("[5~")\n\
I am pretty happy with Terminator. It is written in Python and based on the GNOME terminal (and its performance should be roughly the same). The main feature is that you can create (with shortcuts) multiple terminals in one window:
You should be able to install it with sudo apt-get install terminator (or your equivalent).
Geany, (pronounced "genie") is GPL2, lightweight, highlights the OP's specified languages, does code completion, has a built in terminal (or a plugin tabbed terminal), etc.
FTP & directory opening, no, but sort of yes -- the developers recommend mounting remote file systems with Fuse or LUFS, which provides the same features as FTP et al.