turbo icon indicating copy to clipboard operation
turbo copied to clipboard

Very nice job. Terminal subwindow would be great!

Open iocoder opened this issue 2 years ago • 7 comments

This is a very nice CLI editor. I love it. The code is also clean and very well written.

If not done yet, it would be great to have built-in terminal as well, so that one can edit their files and then switch to that terminal window to run 'make' for example to build the project, 'gdb' for debugging for example, etc. This is will make it an ALL IN ONE editor yet still so simple.

I can try to work on it on my free time as it helps me a lot edit and compile code in remote machines (microcontrollers and embedded systems) without need to have multiple ssh sessions or need to use tmux.

iocoder avatar Jan 28 '22 02:01 iocoder

Hi Ramses!

Thanks for the comment and thanks for the compliment.

The terminal subwindow has already been suggested in #12. Regarding this matter, I already developed a Proof-Of-Concept terminal widget for Turbo Vision: https://github.com/magiblot/tvterm. But it can't be used yet for this purpose since it doesn't have scrollback or text selection.

Nevertheless, I still have doubts about this feature. Not only you would have terminal windows inside the application, but these windows would have to be comfortable to use, and I'm not sure how I'd do that.

In my case, I alternate between the shell and Turbo with the Suspend menu entry (Alt+F+U) and the fg shell command. It could be better but it's not too bad. It does, however, have the disadvantage that text copied from Turbo can't be pasted while Turbo is suspended.

Cheers!

magiblot avatar Jan 28 '22 08:01 magiblot

Awesome work! Thanks for having posted the link to Tvterm here, I was going to implement something similar…

I second the wish to have a terminal-in-window, it's a very useful feature and many editors provide it. (Emacs, Vim, Visual Studio Code, Kate…)

Suspending the editor can be a simpler solution, but a terminal window alongside the source code makes easier to debug stuff, hunt compiler errors, keep a running SSH connection, running a REPL, etc. For instance, I regularly write Julia scripts in Emacs while keeping a Julia REPL in a terminal buffer, so that I can quickly test things on the REPL, move to the script and fix it, go back to the REPL, etc.

Unfortunately, I have almost no experience with libvterm or terminal handling in general, but if there is some easy but boring task I could do to add support for libvterm to Turbo, I would be happy to help.

ziotom78 avatar Jan 08 '24 15:01 ziotom78

Hi Maurizio!

Thanks for the interest. I of course agree about the advantages of this feature, but I was unable to finish it when I had time to work on it.

From my perspective as a developer, instead of integrating tvterm into Turbo, I believe it is simpler to run Turbo in tvterm. There exists a similar project with working terminal scrollback, twin. Have you tried it?

magiblot avatar Jan 17 '24 00:01 magiblot

Hi magiblot, thanks for the tip about twin, I wasn't aware of it. I tried it but have found that tvterm provides a much better terminal experience. (Even a plain ls produces scrambled characters with twin, while tvterm renders everything perfectly.)

So far tvterm is almost perfect, the only things it lacks are scrollback and copy-and-paste. I'll have a look at how to implement them, I cant' make promises about when but I'll surely be happy to have a look.

Thanks again for your awesome work, I really love, love, love tvision, turbo, and tvterm!

ziotom78 avatar Jan 17 '24 11:01 ziotom78

Okay. In that case, make sure to take a look at pangoterm, which is the reference implementation of a terminal emulator using libvterm.

Thanks for all the love 😊.

magiblot avatar Jan 17 '24 12:01 magiblot