Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Very nice job. Terminal subwindow would be great! #24

Open
iocoder opened this issue Jan 28, 2022 · 7 comments
Open

Very nice job. Terminal subwindow would be great! #24

iocoder opened this issue Jan 28, 2022 · 7 comments

Comments

@iocoder
Copy link

iocoder commented Jan 28, 2022

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.

@magiblot
Copy link
Owner

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!

@ziotom78
Copy link

ziotom78 commented Jan 8, 2024

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.

@magiblot
Copy link
Owner

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?

@ziotom78
Copy link

ziotom78 commented Jan 17, 2024

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!

@magiblot
Copy link
Owner

magiblot commented Jan 17, 2024

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 😊.

@win8linux
Copy link
Contributor

win8linux commented May 18, 2024

From my perspective as a developer, instead of integrating tvterm into Turbo, I believe it is simpler to run Turbo in tvterm.

Wouldn't doing this mean that both the turbo and tvterm menu bars will be shown? This is what happens when running turbo or any tvision-based program in twin, although in practice it's not very good due to various rendering issues. Would it be possible for an app made with tvision to show its menus in tvterm's menu bar, effectively turning it into a global menu bar?

@magiblot
Copy link
Owner

Wouldn't doing this mean that both the turbo and tvterm menu bars will be shown?

Yes, it does. But that's mostly a problem of the current UI design of tvterm.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants