
TerminalView – A terminal inside Sublime Text 3 - rubyn00bie
https://github.com/Wramberg/TerminalView
======
hs86
There is also the relatively young
[https://github.com/randy3k/Terminus](https://github.com/randy3k/Terminus)

Unlike TerminalView it also supports Windows and its various shells (cmd.exe,
powershell.exe, wsl.exe).

~~~
tenryuu
>21MB of gifs on the readme

Why?

~~~
Sephr
A good solution would be termtosvg[1] styled to look like Sublime Text 3.

[1] [https://github.com/nbedos/termtosvg](https://github.com/nbedos/termtosvg)

~~~
nkristoffersen
Not supported in all browsers I thought? I recall a browser couldn’t do SVG
animations

~~~
coldtea
Would the users of that browser be of interest when considering that this is
for developer documentation?

------
mherrmann
I've never understood the appeal of integrated terminals or viewers in text
editors, file managers or IDEs. They will never be as good as dedicated
terminals/viewers. Is Alt/Cmd-Tab so hard?

~~~
thom
I use terminals almost exclusively inside Emacs, and it is strictly better
than any terminal emulator on my system. I get really easy navigation on both
command and output history, search (including regexes on command output),
autocomplete, complex text manipulation (including cutting rectangles etc),
integration with the clipboard (I can paste anything from my editor's history
into a command). I can create complicated multi step commands in a buffer and
send them, individually or one at a time, to the shell to be executed with
simple key combinations. I can insert command output into a buffer at my
cursor. But more importantly, Emacs is fullscreen and it's what I'm looking at
anyway. I don't _want_ to switch away from it. My muscle memory is mostly
trained on moving between Emacs buffers, and even with readline bindings, very
few window managers and terminal emulators come close to supporting everything
I want from a shell buffer.

I also exclusively do SQL in Emacs, and dataframes and plots in R, and tailing
log files, and no end of other stuff, and if there's ever anything, no matter
how little, that bothers me about interacting with these things, I can write
code to make it behave exactly how I want it to.

The only thing I _don't_ do with terminals inside Emacs is SSH into a screen
on a server that's already running Emacs, but even then, little jobs are
generally easier with tramp, which makes it transparent when you're editing
stuff and issuing commands remotely.

~~~
celeritascelery
Once I realized terminal emulators are more defined by their limitations then
their features, I started running all my shells in emacs. Never looked back.

------
JdeBP
"it supports [...] Basically everything you would expect from a terminal"
against "8 color support for now" is an interesting juxtaposition.

This is documented _here_ to be copying the Linux kernel's built-in terminal
emulator and so compatible with the "linux" terminfo record. The Linux
kernel's built-in terminal emulator, however, supports the 16 CGA colours, and
nowadays also recognizes the SGR sequences for both ISO 8613-6 Indexed and
Direct colour.

The underlying terminal emulator is, in its _own_ documentation, moreover,
documented as emulating a VT100, which is a rather different beast to the
Linux kernel's built-in terminal emulator in several ways. But this is the
usual mis-use of that designation, that Thomas Dickey points out, because
VT100s had no notion of multiple colours at all.

So it's not supporting everything that I would expect, and it's not equivalent
to either of the terminal types that its doco says that it is.

I haven't found what it does for DECFNK and whether it even generates it, let
alone supports modifiers. That's another very common expectation nowadays.

~~~
jamespo
Source seems to be freely available so they would probably welcome pull
requests

------
eat_veggies
This feature has been missing since the beginning! The lack of a proper
terminal is actually what made me switch to a tiling window manager.

------
ehnto
Even though I use something else, this is cool for reducing context switching.

I used to need to hop between many tools and windows and I found that, similar
to the doorway effect, this switching had the chance to distract me from what
I was doing. That split second of switching contexts was enough to let my mind
drop the balls it was juggling and think about something else.

So in my chosen tool I now have the terminal, editor, debugger and database as
tabs or tool panes. It has helped my concentration immensely as I am not
switching contexts to a new window and my focus remains on the task.

I go to great lengths to stuff tools into the platform I use in order to
reduce switching, even down to making tool buttons for things like enabling
ssh tunnels needed for remote debugging, compiling assets from a button and so
on. For everything I can't stuff into a button, shortcut or tool pane, there
is the terminal pane. Learning my tool thoroughly has been a real boon for my
working efficacy.

------
whoopdedo
Open ST3.

Launch a terminal.

Start Emacs.

M-x term

Run vim.

~~~
tomjakubowski
I'm (sadly) moving from Emacs to Visual Studio Code. But I won't give up
magit[1], because it is awesome, and neither the VS Code git integration nor
the git command line tool come close to it. Hence, I've stripped my emacs
config down so that it essentially does nothing but run (magit-status) on
startup. When I need to do git operations in VS Code, I open the integrated
terminal and run emacs.

[1]: [https://github.com/magit/magit](https://github.com/magit/magit)

~~~
lukewrites
Have you tried GitLens for VS Code? It’s what keeps drawing me back to VSC.

~~~
cup-of-tea
The question really is have you tried magit?

------
derefr
Is there a reason to favour an embedded terminal with a fixed viewport + an
N-line scroll-back, over one that just uses a text-editing buffer as the moral
equivalent of a serial-terminal (where line-editing escape sequences edit the
ST buffer) or even as an append-only log (i.e. regular TTY output is output;
but escape sequences are ignored)?

This would give you the ability to use any REPL as (something close to) a
Jupyter-style notebook. Sure, curses apps wouldn’t work very well... but why
are you running curses apps inside an IDE?

~~~
dilap
Yeah, this is exactly how the emacs `shell` mode works, and it's fucking
awesome + completely addictive.

The only bad thing about it is emacs is so shit-ass slow at rendering text
that I have to drop back to a normal shell for commands that spew a bunch of
shit (like maven, ugh).

It's one of the can't-live-without-it things that's keeping me on emacs.

(Also how dumb is it that a text editor is slow at rendering text? Emacs is
amazingly flexible, but the implementation is just junk. I dream of an editor
w/ the speed & implementation quality of Sublime, with the flexability of
emacs, that'll still run in a terminal. And a pony. I want that too.)

~~~
Scarbutt
* dream of an editor w/ the speed & implementation quality of Sublime, with the flexability of emacs, that'll still run in a terminal. And a pony. I want that too.)*

And configurable in language that can also be used outside the editor (unlike
vimscript, elisp), it could be js, python, scheme, lua, I don't care ;)

JS or Python being the most appropriates IMO.

~~~
taeric
Not sure what you mean about elisp here. Provided you aren't doing anything
super specific to emacs, most lisps can actually move around quite easily.

Though, I have a somewhat irrational dislike of python. JS I accept, but most
of the ecosystem has caused me to greatly question our profession. :)

------
Retra
I use iTerm2 as a terminal, and it comes with a handy option to use [option] +
[space] as a command to switch between the terminal and the current
application. So basically, a terminal is almost as accessible as the space
bar, and I've never seen anything that even looks half as easy or convenient.

------
mcintyre1994
This is one of my favourite things about VSCode, awesome!

------
fit2rule
Very nice feature - now its even easier for me to break into vim and do
something I can't figure out how to do in ST3. ;)

One thing though - whats up with key repeat? It doesn't seem to be working at
all .. (macOS, ST3 Build 3176) .. this kind of makes the whole thing unusable
for me, personally.

Also its not processing any of my ~/.bash* scripts .. I guess this is by
design since its not guaranteed to be a full-featured Term yet?

------
ksherlock
MPW - Macintosh [Classic] Programmer's Workshop - had a combined text
editor/shell. That inspired Eddie ([http://www.el34.com](http://www.el34.com))
for BeOS which was later ported to OS X.

------
curiousgal
I just use i3.

------
evmar
The repository root has a file named LICENSE containing the MIT license. But
the file GateOne/terminal.py says __license__ = "AGPLv3 or Proprietary (see
LICENSE.txt)" and doesn't include LICENSE.txt. I wonder what went wrong?

------
max_likelihood
On Linux Mint, I had to use `{ "keys": ["ctrl+alt+o"], "command":
"terminal_view_open" }` in Preferences > Key Bindings because "ctrl_alt+t" was
opening up my system Terminal.

------
frnkshin
A solution to having the unnecessary terminal inside an editor is to have some
type of tiling window manager.

This can be Awesome, i3, bspwm, or anything out there.

You can also try using tmux or even gnu screen.

------
unwabuisi
Started off using ST3 when I began developing but switched to VSCode because
of its integrated terminal. Looking forward to checking this out

------
NietTim
One of those things I've always wanted to have in ST but somehow never took
the time to look up. This is really nice, thanks OP!

------
modeless
Can this replace the build results panel? Support for color and other terminal
escape sequences would be a godsend there.

------
windinhishair
so it is becoming emacs?

------
bakul

      $ size /usr/local/plan9/bin/acme
          text    data     bss      dec       hex   filename
        356886   14680   52332   423898   0x677da   /usr/local/plan9/bin/acme

