13 ms·
I appreciate the effort that went into writing the article but it conflates different concepts missing some historical context and technical distinctions. For
by felineflock 1y ago
I appreciate the effort that went into writing the article but it conflates different concepts missing some historical context and technical distinctions.
For example, TUI (text user interface) and CLI (command-line interface) are quite different. "CLI Text Editor" sounds more like someone editing a file using ECHO commands.
This new editor is actually a reimplementation of the classic MS-DOS 5 EDIT program from 1991. At that time, VIM was still very new, so "VIM memes" weren't yet part of the tech landscape.
Before VIM, there was vi. In Usenet posts - about 15 years before Google - people used to add a pithy humorous sentence at the bottom called "tagline" - here is one: "How do you exit vi? Reboot the system."
And Notepad was not the only option for Windows devs. We've had EDIT, DR-DOS EDITOR, Brief, WordPad, EditPad, Notepad++, and more.
- marttt 1y agoI've long quit using vim on a daily basis, but the "how to exit Vim?" jokes are still somehow funny. A recent encounter was an old tweet by @iamdeveloper: "I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it." :wq (sorry, I had to).
- Jenk 1y ago`ZZ` to save and quit, `ZQ` to quit without saving. Sorry, I can't help myself.
- Brian_K_White 1y agoI've always used :x or :x! and no longer remember why. Probably it's a bad idea like without actually looking right now I think it might mean to ignore permissions (if you're root enough) and just write even if perms would have blocked it. Hm, maybe x means wq and just the ! means force.
- mklein994 1y agoIt's actually a bit more nuanced: `:x` is like `:wq`, but only writes if changes have been made. `:x!` has the same semantics as `:wq!`.
- humanperhaps 1y agoI feel like the default behavior should be to not write unless changes have been made. I may be misunderstanding here, but what would be getting written if nothing's been changed?
- greiskul 1y agoMetadata about the file like modification time.
- johannes1234321 1y agoIt would overwrite changes made by external programs.
- BoiledCabbage 1y agoThe fact that everyone says the meme is dead, but in this small thread there are 5 different people posting how to exit, and none of them are the same says there is still pretty good substance behind that meme.
- Brian_K_White 1y agoI think we're all kind of implicitly acknowledging the truth of the meme. I mean that was definitely a conscious part of my own comment.
- entelechy0 1y ago[dead]
- pjio 1y agoQuitting vim isn't about exiting the program, which can easily be done with :!kill -9 $PPID
- tylerchilds 1y agoi quit vim like ctrl-z
- __MatrixMan__ 1y agoQuitting vim became easy once I got to know helix. I've been clean for several weeks.
- eddd-ddde 1y agoYou should check out kakoune! It's very similar to helix, motion first, multi selection, and stupid easy to script.
- marttt 1y agoEasy-peasy!
- EFreethought 1y agoI think sysadmins should install nano on servers for people to make quick edits. All the commands are along the bottom, so there is no learning curve.
- onetom 1y agoor they should just make sure emacs can work with the machine thru ssh, then there is nothing to install ;) if no ssh, then nano is not a bad option, though i would go with joe (https://joe-editor.sourceforge.io/ https://joe-editor.sourceforge.io/) which can also show the shortcuts, but much much more powerful, yet it's just a single ~700kbyte exe (or 1.5MB with some optional syntax highlighting grammars and docs)
- opan 1y ago>or they should just make sure emacs can work with the machine thru ssh, then there is nothing to install ;) While (neo)vim doesn't have TRAMP and dired, it has netrw, which does the same stuff (on a basic level). You can do the following to edit a remote file: vim scp://user@hostname/path-to-file-here You can also replace user@hostname with an ssh alias you've configured, which makes it easier to work with multihop ssh and different keys and users. One useful usage of the remote editing is to combine it with opening multiple files to compare two files on different machines: vim -O ~/.config/mpv/mpv.conf scp://htpc/.config/mpv/mpv.conf To browse a directory instead of a specific file, just put the dir instead of a non-dir file and it will open a filebrowser view where you can then pick a file to open. In the above examples, leave off mpv.conf and you'll then be able to pick either your mpv.conf or input.conf or files related to your mpv scripts.
- onetom 1y agoTRAMP can run commands in that remote context too, so any kind of compiler, interactive REPL integration works without any special support usually. For example the built-in version control works the same as in a local context. That's why it's called transparent: > TRAMP stands for “Transparent Remote (file) Access, Multiple Protocol” — https://www.gnu.org/software/tramp/ https://www.gnu.org/software/tramp/ it makes a big difference, imho... not as good as plan 9, of course :)
- Jenk 1y agoBefore vim was vi. Befote vi was ex. (Before ex was ed - the first editor for unix) Vim has ex built in - `Q` in normal mode to enter Ex mode, 3-5 command lines will show at the bottom and you can Ex away. I don't know of practical uses, I've only done it for the novelty. Obligatory: To exit Ex mode use `:vi[sual]` - and that's probably where Vi got its name.
- actionfromafar 1y agoed is the standard editor
- hk1337 1y ago> This new editor is actually a reimplementation of the classic MS-DOS 5 EDIT program from 1991. I remember editing the AUTOEXEC.BAT in that thing as well as writing my own BAT files and QBASIC.
- skywhopper 1y agoYou’re missing ‘ed’ (and its predecessor ‘qed’) which is actually a CLI text editor.
- WalterBright 1y agoDon't forget MicroEmacs! I've been using it ever since it floated around usenet in 1985 or so.
- needlesslygrim 1y agoI'm curious, why don't you use GNU Emacs?
- WalterBright 1y agoToo heavy. MicroEmacs loads instantly. MicroEmacs is small and lightweight. I port it to whatever machine I'm using, and it works nicely in a remote tty window. It doesn't need a customization language, as I just change the source code. Recently, I added color syntax highlighting to it, and support for unicode characters. https://github.com/DigitalMars/med https://github.com/DigitalMars/med
- 00000000000test 1y agoFor how long have you been coding without syntax highlighting?
- WalterBright 1y agoSince my hair left for the Klondike gold fields.
- needlesslygrim 1y agoThat makes sense, and it's interesting that both you and Linus Torvalds maintain your own versions of Micro Emacs. Sign of greatness perhaps :)
- onetom 1y agowhich variant? jasspa, openbsd/macos mg, torvalds/uemacs ? why not https://joe-editor.sourceforge.io/ https://joe-editor.sourceforge.io/ starting via jmacs?
- wodenokoto 1y agoI forgot how the punchline is phrased, so apologies for the atrocious delivery, but I like the one about “I do all my coding in VIM, because I don’t know how to exit VIM”
- skissane 1y ago> This new editor is actually a reimplementation of the classic MS-DOS 5 EDIT program from 1991 MS-DOS 5 EDIT is actually just a stub which runs QBASIC in editor mode, in which all the BASIC-related features are disabled. Windows 95 EDIT was different, it actually had BASIC removed from the binary. I don't know if it was a rewrite or if they just deleted (or even #ifdef-ed) out the BASIC parts out of the source code. QBASIC was basically just a cut-down build of QuickBASIC with some features disabled. The TUI part was provided by the "Character Windows" (aka "Character-Oriented Windows", CW or COW) library, a TUI-mode analog to the Windows 3.x API for DOS TUI apps, it was also used by some other Microsoft products such as Word for DOS. It would be great were Microsoft to open source it (although from what I've heard, significant chunks of this stuff have already been included in various leaks of DOS and Windows source code, but it would be nice to have it publicly available in a completely kosher way)
- donatj 1y ago> QBASIC was basically just a cut-down build of QuickBASIC with some features disabled Huh, I've wondered about the difference for the last 30+ years.
- mattl 1y agoQuickBASIC, Visual BASIC for DOS and PDS (Professional Development System) all had some variation on the same design. PDS has QuickBASIC Extended. I briefly worked with them.
- pico303 1y agoThe target market for this editor seems infinitesimal. Who on Windows these days groks the terminal on Windows, wants a terminal editor instead of Notepad++ or VSCode, and finds Neovim overwhelming? And certainly no one on Ubuntu is looking for this. That said, give me QuickBasic back in the terminal on Windows, Mac, and Linux, and now you’ve got my attention…
- skissane 1y ago> That said, give me QuickBasic back in the terminal on Windows, Mac, and Linux, and now you’ve got my attention… There are already open source clones of QuickBasic which provide what you want, plus a whole lot more, such as QB64 and FreeBASIC. While I'd love it were Microsoft to some day open source QuickBasic/QBasic/PDS/VB for DOS/etc, that would largely be of historical rather than practical benefit.
- rozab 1y agoThe term CLI has just come to mean "in a terminal" for a certain subculture, e.g. https://github.com/agarrharr/awesome-cli-apps https://github.com/agarrharr/awesome-cli-apps People do know the technical difference, it's just a shorthand
- da_chicken 1y agoI understand the categorization you want to draw, but I don't think convention and usage are going to back you up well enough to solidify it. Sometimes people use CLI to mean something you're literally doing at the shell prompt, and sometimes people use CLI to mean anything that isn't a GUI. And the Venn diagram of those meanings has significant overlap when both of those meanings are contextually valid and the end result of the meaning is functionally identical. If I say, "instead of Firefox I'm using lynx, a CLI web browser," it's not really so ambiguous what I mean that you're confused. You can do backflips and dodge context to arrive at being confusing, but you really have to cross into disingenuous reading to get there. The fact that you CAN draw a difference does not actually mean that the author needs to in order to communicate effectively.
- JadeNB 1y ago> For example, TUI (text user interface) and CLI (command-line interface) are quite different. "CLI Text Editor" sounds more like someone editing a file using ECHO commands. Sounds like ed, or edlin for the DOS oldies, to me.
- bee_rider 1y agoDoes the exclamation point work in vi, like vim? So the way to exit is to do: :!killall vi Of course. For a cli text editor, ed would qualify, right?
- roryirvine 1y agofor maximum excitement, try that killall method on a SysV unix...
- spauldo 1y agoYe gods, I had managed to bury that memory! Went from Slackware to Solaris, and then used killall while teaching a UNIX class. Everyone got a laugh and a smoke break, and I got knocked down a peg.
- diggan 1y ago> For a cli text editor, ed would qualify, right? It'd still say ed is more of a TUI than CLI, albeit kind of old-school since it doesn't redraw the screen, just continuously show output and let you enter commands. Maybe "REPL" comes closer, because it's not interactive in the typical TUI way.
- hamburglar 1y agoIs it actually important that we come up with a formal definition of these things, though? They are colloquial terms, there is some overlap, and people are always going to use one or the other “incorrectly” according to you. It’s more important that we recognize that’s a potential source of differing terminology and ignore that rather than fixating on it.
- Jenk 1y agoEd was designed in an age where the visual interface was a printer - so it is most assuredly a cli tool :)
- deleted 1y ago[deleted]
- reaperducer 1y agoIn Usenet posts - about 15 years before Google - people used to add a pithy humorous sentence at the bottom called "tagline" We always called them "signatures." They were even stored in a file named .sig.
- felineflock 1y agoThe tagline was below or at the end of the signature. They were stored separately in a list and there was software that would pick one of them randomly to add to the signature when posting.
- angled 1y ago^H^H^H^Hsignature
- invaliduser 1y agotaglines where witty one-liners posted at the end of messages, after the signature, as a way to add a bit of humor or personality. I think we also used them in fidonet echomail, but I don't remember for sure.
- int_19h 1y agoIn echomail they were known as "Origin" because the intended purpose of that line was to identify the originating node. It looked like this: * Origin: any random text (12:34/56.78) The text was supposed to be the name or description of the node, but this wasn't mandated by the rules, and the address at the end unambiguously identified the node anyway for anyone who cared, so people quickly repurposed it for taglines.
- JdeBP 1y agoThe problem is that the nomenclature and conventions differed, and this many years later people tend to conflate them. BBS networks like ILink had tearlines, optional taglines, and mandatory origin lines. FidoNet had tearlines and origin lines because it shared roots and sometimes nodes with the BBS networks; so they were there for compatibility. Usenet mainly had signatures, with all of its equivalents to the other stuff in headers. * http://ftsc.org/docs/fts-0004.001 http://ftsc.org/docs/fts-0004.001
- deleted 1y ago[deleted]
- pxc 1y agoI came here to pick the first of those nits, too. A concrete example that sums it up: sed is a command-line text editor; nano is a TUI text editor.
- sjmulder 1y agoBtw, CLI editors can be interactive too: consider ed ("the standard text editor") and DOS' edlin.
- snozolli 1y agoTUI (text user interface) I find it interesting that everyone is using TUI when I've always seen CUI (Character User Interface). I come from a DOS and Windows background, and it seems like TUI comes from the *nix world. And Notepad was not the only option for Windows devs. Dr Dobbs and other tech magazines used to have ads for a variety of editors. And linkers, which were the bane of 80s programmers' lives. There was a whole era of programmer-oriented software that seems to have been largely forgotten.
- layer8 1y agoMy understanding is that CUI includes both TUI and CLI, and refers to the interface of a text-mode screen (as opposed to a graphical screen — a GUI), where you can use both CLI commands and TUI programs. So, technically, if you’re using a TUI in a graphical terminal window within a GUI, you’re strictly speaking not in a CUI, but are emulating a CUI within a GUI. And the CLIs and TUIs are running within that CUI.
- card_zero 1y agoOui.
- snozolli 1y agoI don't agree with that. I first heard CUI used to describe software like the Turbo Pascal IDE. I believe that "CUI" came about when GUI was coined to describe the modern graphical interface like Windows and Macintosh. That was in the latter 80s and early 90s. I've never heard TUI until literally today. Additionally, TUI is either Text or Terminal User Interface. Either way, it seems to be heavily associated with ncurses. As I understand it, ncurses essentially outputs a stream, which includes things like ANSI escape sequences for position and color. By contrast, CUIs like Turbo Pascal wrote directly to video memory.
- layer8 1y agoIt’s true that TUI is a newer term than GUI and CUI. However, it isn’t exactly a new term either, its Wikipedia page was created in 2004. Look at the screenshots for illustration of what is considered a TUI: https://en.wikipedia.org/wiki/Text-based_user_interface https://en.wikipedia.org/wiki/Text-based_user_interface Or here some usage of the term in 2002 referring to a Turbo Vision or Norton Commander-like interface: https://www.digitalmars.com/d/archives/c++/dos/75.html https://www.digitalmars.com/d/archives/c++/dos/75.html The technical means of how the contents of the TUI is established (character stream with special codes, or direct writes to text-mode video buffer) is largely irrelevant for the term. The essential characteristic is that the visual “state space” of the interface is a character matrix, and that the program treats it as such (instead of just unidirectional line-based output). Maybe you are right that CUI actually doesn’t cover CLI. The Unix System V documentation uses “Character User Interface” for curses-based interfaces (https://books.google.com/books?hl=en&id=idAmAAAAMAAJ https://books.google.com/books?hl=en&id=idAmAAAAMAAJ). Then CUI and TUI are roughly synonymous, though TUI is the widespread term nowadays.
- holowoodman 1y agoyou forgot EDLIN
- esafak 1y ago'coz it's better forgotten! Who could guess it was made in two weeks in 1980? Anyone who fired it up!
- marttt 1y agoBTW, its FreeDOS version is still being updated fairly frequently :) -- https://sourceforge.net/projects/freedos-edlin/files/freedos-edlin/ https://sourceforge.net/projects/freedos-edlin/files/freedos...
- da_chicken 1y agoThat's the thing about open source. Some projects are just maintained for fun, not because they're broadly used or the best tools for a job.
- abhgh 1y agoI noticed the conflation of terms too but it seems to arise out of the original Microsoft announcement! https://devblogs.microsoft.com/commandline/edit-is-now-open-source/ https://devblogs.microsoft.com/commandline/edit-is-now-open-...
- onetom 1y agosomethings never change... my biggest problem with azure was also the fact that they couldn't stick to industry-standard terminology, but they has to invent their own. it made azure docs tremendously confusing.
- JdeBP 1y agoInterestingly enough, the weird re-boosting to get more views thing that Hacker News sometimes does is making it seem like I said all of that 5 hours ago. * https://news.ycombinator.com/item?id=44310682 https://news.ycombinator.com/item?id=44310682 Instead of 2 days ago when I actually wrote it. (-: