This mock-up basically describes my terminal project Extraterm.
The features page demonstrates implementations of some of the ideas shown in the mock-up. It also shows some other ideas which are no present in the mock-up such as reusing previous command output and editing in place. With the shell integration command output is 'framed' and separated from the surrounding text. You can also easily delete unneeded output or move it out into its own tab for later. You can even drag a whole block of output into your text editor if you want to.
Supporting a kind of status bar is planned for the medium term future. (I'll have to extend my internal extension API to allow placing things at the bottom of the terminal, and also extend the escape mechanism in the shell integration to support sending key=value data, i.e. CURRENT_GIT_BRANCH=master, or HOST=home.foo.net etc. It is pretty straight forward stuff though.)
A lot of the deeper features like executing commands directly from links inside the terminal, or making it possible to click open folders in a ls
listing, will most likely require special software running on the remote shell end of the whole terminal/shell.
I did a brain dump of possible features earlier this year in the Looking Forward blog post if anyone wants even more ideas.
You should try out my project Extraterm. It is still in rapid development but it has exactly what you asked for, and I, like you, can't live without being able to jump up to the top of previous command output.
The shell integration in Extraterm also allows a bunch of other things which you won't find anywhere else.
For example:
For a better overview see: http://extraterm.org/features.html
I think it is a really interesting idea. I'm keen to do something similar to it my terminal from hell project. Here I'm thinking of a way of attaching additional command line suggestions to bits of output of commands. e.g. the result of git status
could have extra commands associated with the file names like git add foo.txt
which would then tie into a bigger autocomplete system. This could be implemented either command/shell side by running commands through some kind of filter which adds the extra data/annotations/suggestions (via escape codes), or terminal side. I imagine that the definitions or scripts needed could be specified in a language like the one in rat.
I liked TLDR pages so much that I built an extension for it in my terminal emulator. Now regardless of which server, container, or embedded Linux I'm logging into I can easily search and insert a command 'template' all from my terminal.
A gif of it can be seen here:
http://extraterm.org/release/2020/05/20/extraterm-v0.50.0-released.html
Here's an idea: Unless you are paying for the programming work itself, then people can code is whatever they damn well like. Especially regarding open source stuff, it is take it or leave it from the end user's point of view.
P.S. My terminal is running on web tech. So what.
You really should check out some of the little demos over at my terminal project. Especially the stuff with the from
command and how you can reuse previous output.
Thank you for describing your desired workflow with such detail.
Supporting and integrating with modern workflows is a goal of my terminal Extraterm. For example, one feature that want to develop is the ability to easily edit a file locally using your editor of choice, even if the file is on the other side of 5 nested SSH sessions. 'easily' meaning no extra configuration needed and it "just works".
I don't know if the very tight editor and terminal integration you describe will be possible, but once Extraterm has a mature plugin API it will be possible to connect the two and make it easy to go back and forth with much less friction than what we have now. For example, an autocomplete feature in Extraterm should automatically offer the filenames of the files you have open in VSCode.
I prefer the terminal I've been developing, Extraterm . It is an ongoing work in progress but is now quickly moving toward something that could be a 1.0. Shell integration with separated command output, splits/panes and also the command palette, are the main features I use the most but can't really get anywhere else. It's also cross platform so that I can feel somewhat comfortable when on the other OS.
there is a relative new terminal emulator, Extraterm http://extraterm.org/features.html, which has a feature designed especially to edit output of earlier issued commands.
there is no need to compose commands in a form you can process output of them (pipe, backtick and save to variable), rather than you can edit every command's output by clicking into them and still can pipe/save earlier outputs using Extraterm's special from
command.
As point of interest, I'm working on a funky terminal emulator where this kind of 'bracketing' of command output is a core feature. See can see it in action here. The frame around the output also indicates the return code (blue=ok, red=failure), and you can drag the 'framed' command output different places or reuse it directly in other commands.
From the shell side it is actually implemented by hacking command prompts and prexec
and postexec
hooks etc.