A plugin for those who want a terminal inside ST3 that supports interactive applications, password prompts, etc. I made the plugin mostly because I wanted to become more familiar with how terminals and shells work together (and where the different responsibilities are placed).

The outcome turned out better than expected and I think this plugin might actually be useful to someone else than me.

Hey rwols glad you enjoy the plugin - nice to know it works on macOS aswell. I think there may have been some ST3 wrapping going on in your gif there (second ls came back skewed). I just pushed a fix to that

This plugin rocks and I already use it everyday. I'd like to put in a vote for scrollback functionality though (possibly the "scrolling functionality" referenced in the readme). Basically I really miss being able to scroll back through the terminal history. Having a configurable history buffer, ie number of saved lines (eg 5000) would be fantastic too!

Plugin is now available via package control https://packagecontrol.io/packages/TerminalView@nutjob2 You are right that is the feature I am referring to in the readme and I agree it would be a very nice addition. I will probably be looking into it over the next week if I find the time

While I'm at it can I also suggest reconnecting existing terminal windows at startup? Probably not critical functionality but it would be nice to not have to close your previous work and re-open a terminal window when re-opening ST. This is only an issue if ST is configured to reopen your windows at startup, of course.

Something else I've been thinking about is getting the same error message navigation functionality as you find in build panels, so you can jump to the right source file and line when a error message is displayed in the terminal, but that probably can be implemented as a separate plugin, since it doesn't require any terminal functionality.

List of suggestions (note that I'd be interested in contributing if you agree with them):

color support:[EDIT]: sorry for the noise it's working as intended

selecting like in a regular ST bufferI often need to copy/paste from the output, often the output I'm interested in span several lines and are not necessarly consecutive. To do this I need to copy the whole buffer in ST and select what I want through Ctrl+D. Being able to do this inside ST with your plugin would really simplify that workflow.I'm not sure if it's voluntary but for now your plugin prevent any kind of selection. If you select something it would get unselected in as soon as you release the mouse.

editing like a regular ST buffer:Same thing I'd like to be able to edit the current terminal input with standard ST command. As that conflict with terminal special character (like Ctrl+D that insert EOD) I'd add a menu entry to insert such chars.

use ST syntaxes to color command output.I think it would be amazing if we could use specific ST syntax to color specific command output.For example I'd like to be able to put a specific syntax to color the logs of my program.Alternatively a simple system that let you match lines with regex and color them would already be nice.

Infinite buffer outputI'm surprised by the current behavior that cut the term output to a fix size. Is it because you're doing a "screen" emulation ? Wouldn't it be possible to have access to the complete output ?

@nutjob2Old sessionsI like the idea of re-opening old session for QOL reasons but it would be a bit tricky to implement since the shell is terminated when ST is closed. We could probably track the current working dir and try to re-open session but running programs would probably be lost.

Opening file pathsFinding file paths and opening them in ST would probably be do-able (and quite relevant) so I'll definitely look into that at some point

@gwenzekColorsColor support should be working with pyte which is the terminal emulator thats being used. If enabling colors through settings does not work for you I suggest you create an issue with some info about your setup (ST3 version, bash version, etc.)

Selecting/copying like regular bufferAs described in my development plan some copy paste functionality is to be included. I imagine the copy functionality being implemented somewhat like you describe. That is, you would enable some kind of "edit mode" where you can move the cursor freely and use your regular ST keybindings.

Editing inputThe input goes straight to the shell so this is not really a possibility. It's possible that the plugin could support some kind of command staging mode but that would be extreme QOL.

ST3 syntax coloringThis might actually be quite easy to implement. I'll have a look at it when I get a bit of time.

ScrollingI have a working PoC on another branch. The best terminal emulator I could find was pyte - but it only supports showing a screen of characters. The way the PoC works is by using pyte's history screen. This works great but the ST scrollbars are not being used. I would like to implement a sliding window approach where the actual ST buffer is used as history but this will take some time and consideration (and probably some restructuring).

With regards to "old sessions": For me it's just the inconvenience of having to recreate/reconnect windows to the plugin. Connecting to previous terminal sessions isn't a big deal since the terminal environment is already setup at startup, or is driven by scripts.

Accordingly to the author, this would require a lot of work and should not happen anytime soon.

I also would like to see it for windows, but it requires a python module which is only available for Linux. Perhaps the better request would be for the python module required to be also make available for windows.

I think the ones are import fcntl and import termios which are imported on the file:github.com