[HN Gopher] Show HN: A retro terminal text editor for GNU/Linux ...
___________________________________________________________________
Show HN: A retro terminal text editor for GNU/Linux coded in C
(C-edit)
I set about coding my own version of the classic MS-DOS EDIT.COM
for GNU/Linux systems four years ago and it this is where the
project is at... still rough around the edges but works well with
Termux! :) Demo: https://www.youtube.com/watch?v=H7bneUX_kVA
Author : velorek
Score : 109 points
Date : 2024-08-30 20:58 UTC (1 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| Turboblack wrote:
| It would be nice to have one like this (full screen) for Windows
| velorek wrote:
| Yes, I would like to make a cross-platform editor one day. I
| would probably choose Pascal's RTL video unit over C for that
| task. There is one editor called YEDIT that fits the brief for
| windows systems: http://www.malsmith.net/edit/
| miohtama wrote:
| FYI The classical Borland text user inteface (TUI) framework used
| in Turbo Pascal and other terminal MS-DOS editors is open source.
|
| Turbo Vision: https://github.com/magiblot/tvision
| dbrueck wrote:
| The sense of nostalgia this evokes is so strong, thank you for
| sharing this!
| velorek wrote:
| It's awesome. Free Pascal IDE is based on this I think. It
| certainly something to aspire to :) thanks for sharing
| badsectoracula wrote:
| It isn't, Free Vision (Free Pascal's own Turbo Vision
| library) has a much more weird history though it is
| indirectly based on the C++ code Borland released back in the
| 90s, like the version linked here (see my other comment).
| They have a common ancestor but they are different
| "branches".
| velorek wrote:
| I see, thanks for the clarification. Btw, I really enjoyed
| YT "Making a game in Free Pascal" back in the day. I did
| learn a lot from your video :) Pascal is one of my top
| languages to code in! Nice to see you around here
| badsectoracula wrote:
| You just made me realize it has been 10 years since that
| video :-P. It has been a while since i made a similar
| video (last one was 'Making a game in Linux using
| Lazarus' from 6 years ago, most of my more recent videos
| are random clips from random stuff i work on). Perhaps
| i'll try making a new one at some point.
|
| [0] https://www.youtube.com/watch?v=s_01Xhd2EJM
| fsckboy wrote:
| that's cool! so this is the turbo-* vision part, but the
| *-pascal part is not included?
|
| is there one of those anybody knows about? I have the source to
| a turbo pascal BRIDGE.PAS card game player I used to enjoy
| playing. (it's not a good bridge player and it has a scoring
| bug, but I know how to fix it, and I can run it in dosbox if I
| want so I'm not desperate in that sense, but I'd rather run
| native)
| badsectoracula wrote:
| Free Pascal comes with Free Vision. FV has some weird history
| in that Borland released their C++ conversion of Turbo Vision
| to public domain, then someone converted that to Turbo Pascal
| and converted it to use graphics instead of textmode (with
| coordinates in pixels, etc) and then it was ported to Free
| Pascal and converted back to text mode and to use Free
| Pascal's cross platform text mode units. The Free Pascal IDE
| that comes with the compiler is made using Free Vision and
| Free Vision works on pretty much any platform Free Pascal
| itself supports (as long as it has some form of text mode).
|
| Regardless of the history, the API is basically the same, you
| can even read a tutorial written for Turbo Vision and apply
| it to Free Pascal with minimal changes.
|
| Recently there has been a UTF-8 version (original TP -and FV-
| was made for 8bit DOS character codes) though it is a big
| buggy and slower than the non-UTF-8 version. I tried to use
| to make an Info viewer[0] some months ago but i had to switch
| to the non-UTF-8 version due to the bugs.
|
| [0] https://i.imgur.com/Qvkt3W0.png
| Brian_K_White wrote:
| Going sort of the other way, making an X version of a Borland-
| like ui, a long time ago I liked XWPE for a while. Even built it
| for SCO.
| velorek wrote:
| It seems like an interesting project as well! I'd love to see
| it one day
| vunderba wrote:
| Love the look, definitely throwing me back to the halcyon QBasic
| days.
|
| Slightly related but another way to simulate a retro text editor
| (old school raster style green screen aesthetic in this instance)
| is to combine the "cool-retro-term" terminal with the minimal
| editor "micro".
|
| https://github.com/Swordfish90/cool-retro-term
|
| https://github.com/zyedidia/micro
| MadnessASAP wrote:
| I love cool-retro-term, I keep it running with a Matrix style
| terminal toy as a "screensaver" on the small PC sitting on my
| homelab. It's an ostentatious waste of power and CPU cycles but
| I appreciate the aesthetics of it.
| westurner wrote:
| QB64 is an EDIT.COM-style IDE and a compiler for QuickBasic .BAS
| programs: https://github.com/QB64Official/qb64#usage
|
| There's a QBjs, for QuickBasic on the web.
|
| There's a QB64 vscode extension:
| https://github.com/QB64Official/vscode
|
| Textual has a MarkdownViewer TUI control with syntax highlighting
| and a file tree in a side panel like NERDtree, but not yet a
| markdown editor.
| velorek wrote:
| Interesting project. Thanks for sharing! :)
| Cheer2171 wrote:
| QuickBasic was my first programming language and EDIT.COM was
| my first IDE. I love going back down memory lane, thanks!
| nunobrito wrote:
| When you mentioned retro I was expecting something like editline.
| Now I feel old.
|
| Anyways, the TUI on mainstream MS-DOS 6.22 and Borland from those
| days were incomparable to anything on mainstream Linux even on
| these days. For some reason Linux is the king of text mode and
| yet never had a proper TUI tradition.
|
| Thank you for sharing the project. Compiled well on my side,
| looking forward to the next developments. My (unrequested)
| feedback:
|
| + consider renaming from C-edit (uppercase) to lower case c-edit,
| because it is simpler to type from the terminal.
|
| + the animations of the spining part on top was distracting
|
| + some menus missing to implement functionality, didn't test
| copy&paste
|
| + mouse support would be nice, albeit optional but would complete
| the MS-DOS 6.22 / borland style since it supported mouse there
| too
|
| Thank you.
| velorek wrote:
| Glad it compiled! Most of your suggestions are on my to-do list
| indeed. I wanted to maintain an animation to demonstrate that
| it could be kept running throughout all the different dialogs
| and listboxes. I'll probably end up changing it. Thank you for
| testing it. :)
| nunobrito wrote:
| Makes good sense. Keep up the good work!
| rbanffy wrote:
| I have to say that when I saw retro I expected ncurses
| support. Not all retro terminals understand VT100 escape
| sequences ;-)
|
| What about those who use VT-52 terminals?
| two_handfuls wrote:
| This look brings back old memories! Great job!
| velorek wrote:
| Thank you, I appreciate it :)
| jll29 wrote:
| Apart from the learning experience, there is still value in a
| small-sized, fast TUI text editor for Linux.
|
| However, my two suggestions would be:
|
| - add Unicode support (it's the 21st century, so [?], (r), etc.
| should finally work); this is not easy, but the earlier you do it
| the less dramatic the changes will be (check out
| https://github.com/unicode-org/icu/tree/main/icu4c);
|
| - don't allocate the lines individually (as you do now with
| malloc, having looked at the code); at least use an arena
| allocator, i.e. allocate larger chunks of memory and the provide
| your own alloc_line function that uses the larger chunks (called
| arenas) piecemeal. This will speed things up and reduce
| fragmentation. A more advanced approach would be not to use per-
| line buffers but to switch to rope data structures e.g.
| https://github.com/josephg/librope).
| badsectoracula wrote:
| > This will speed things up and reduce fragmentation
|
| Does this really make much of a practical difference these last
| decades? I wrote a text editor back in the late 90s in DOS
| using DJGPP with per-line allocation and it worked fine on the
| Pentium MMX i had at the time (and my approach to optimization
| at that time was be ignorant of the concept :-P), i'm not sure
| it'd really make much of a difference on any desktop or laptop
| CPU released past 2000 - at least as far as users editing text
| files are concerned (might make a difference if you try to open
| a multiGB file with barely a line break and accidentally press
| a letter :-P).
___________________________________________________________________
(page generated 2024-08-31 23:00 UTC)