• Joker_vD 5 days ago

    Ugh, all this crazy head-spinning cursor commotion... I'll just keep using ed, thank you very much.

    • Rendello 5 days ago

      Always keep your copy of Ed Mastery on-hand:

      https://mwl.io/nonfiction/tools#ed

      • anthk 4 days ago

        If you think about it, it's a cheap book on sed too.

      • chongli 5 days ago

        Just start ex instead. Command-based line editing without the hassle of a cursor.

        • n3t 5 days ago

          Yeah, it's just better to stick to the standard editor.

          • fuzztester 5 days ago

            COPY CON ...

            on DOS, bro.

            nuttin else comes close

            or if ur 2 weak, edlin.

            • EvanAnderson 5 days ago

              I actually use "COPY CON" a fair amount. Also a decent amount of "cat > foo.sh".

              • fuzztester 2 days ago

                Ha ha.

                Same here.

                Also, in shell,

                  >file 
                
                can be used to delete a file, IIRC. Not at a Unix box right now, so can't check.

                And:

                  echo * 
                
                is the poor man's ls command, as in, "poor man, his Unix OS is corrupted , and many commands are missing".

                And similarly dd is that man's cat command. :)

                • fuzztester 2 days ago

                  yes, it makes sense in some situations, because if all you want to do create a small batch (.BAT) file of a few lines, and you are a careful / good typist, the COPY CON method can be a lot faster then firing up your favourite editor, even a fast one like vim, to create the file, save it and exit.

                  and the same applies for UNIX.

                • pjmlp 4 days ago

                  I did my high school typewriting test in PC skills using edlin, and never ever used it again.

                  For coding in MS-DOS, I was using Borland IDEs, and there was the nice Q programmers editor as well.

            • anthk 5 days ago

              Spawn vi or nvi (nvi2 under OpenBSD, it has unicode). Then, press [esc] and run: :viusage [Return] [Esc] :exusage[Return] Now you know the basics. Viusage: keyboard commands while in editing mode. Exusage: typed commands for the command (:) mode.

              • wahern 5 days ago

                For exploring the POSIX standard the frames version is very useful: https://pubs.opengroup.org/onlinepubs/9799919799/

                • nickandbro 5 days ago

                  Love vi, made a Vimgolf like app called:

                  https://vimgolf.ai

                  because I like vi so much. Although the app uses neovim underneath the hood because it had an easier API to work with.

                  • rdancer 5 days ago

                    Marvellous!

                    :w<CR> should count the same as ZZ for the purposes of hiding better solutions, else it's fairly easy to walk up the leaderboard even though the better solutions are ostensibly hidden.

                    • nickandbro 5 days ago

                      Thanks, appreciate the feedback

                    • BipolarCapybara 5 days ago

                      Great site! I've been wanting to learn it for the past couple of weeks, but didn't have enough motivation to sit trhough tutorials. +1

                      • jmholla 5 days ago

                        Once you're the slightest but comfortable navigating vi, I highly recommend Practical Vim. [0] It tooke me a few days to get through, but I'm 100% in vim these days and more effective in it than in my old primary editor PyCharm.

                        [0]: https://pragprog.com/titles/dnvim2/practical-vim-second-edit...

                        • Onawa 5 days ago

                          I learned vi(m) using https://vim-adventures.com/. It's $25 US for a 6-month license, which is a bit short. But I felt I got my money's worth out of it and continue to use and love vi(m) to this day.

                          • nickandbro 5 days ago

                            Big fan of vim adventures too! It definitely gamifies the learning of vim. Mine is more for the vim enthusiast who want to measure up against other vim power users.

                          • nickandbro 5 days ago

                            Thank you! It’s an unfinished project of mine. Still looking at adding more levels and allowing users to upload their own.

                          • cocoa19 5 days ago

                            Can I suggest dropping the sign up requirement and email verification to try it out?

                            • nickandbro 5 days ago

                              I agree! I am just working the containerization of the vim instances. Right now using k8, but wasting $$$ on infra. Moving to cloudflare containers to save that $$$ and make it more available. In the mean time, temporary email sites are allowed and not black listed.

                          • haunter 5 days ago

                            Huawei EulerOS is one of the few POSIX compliant Linux distros, but it’s a commercial one [0]

                            But it has a FOSS release, openEuler [1]

                            I actually want to download it now to check if the vi there is really that POSIX version

                            0, https://www.opengroup.org/openbrand/register/brand3622.htm

                            1, https://www.openeuler.org/en/

                            • ksherlock 5 days ago

                              Wikipedia says it's based off RHEL and this[1] suggests it just vim.

                              1: https://dl-cdn.openeuler.openatom.cn/openEuler-25.03/source/...

                              Are they actually UNIX Conformant? That PDF just says they've entered a trademark license agreement. They're not listed in the conformance database.

                              https://www.opengroup.org/csq/search/t=XY1.html

                              • skissane 4 days ago

                                > Are they actually UNIX Conformant? That PDF just says they've entered a trademark license agreement. They're not listed in the conformance database.

                                They were an official UNIX – https://www.opengroup.org/openbrand/register/brand3622.htm – but they aren't any more.

                                To be an official UNIX, you need to both pass the test suite and pay the trademark license fee. And the license fee needs to be renewed once every X years. And if you don't pay the renewal, you are no longer an official UNIX, even if you still pass all the tests.

                                This is why Solaris is no longer an official UNIX – someone at Oracle decided paying UNIX trademark license fees was a waste of money, so they stopped – and hence Solaris is no longer officially UNIX any more.

                                An I'm pretty sure the same thing happened with Huawei EulerOS. Probably someone at Huawei realised that zero customers cared whether EulerOS was officially "UNIX", and hence decided that paying the renewal was a waste of money. And they are probably right about that. 30 years ago, being officially "UNIX" or not could be a deal-breaker, nowadays I doubt a single customer cares.

                                • ksherlock 4 days ago

                                  FWIW, OS X uses vim so if any of the conformance tests check, it can be made to pass.

                                  Solaris, AIX, and probably everyone else use the BSD/AT&T vi.

                                • unmole 5 days ago

                                  I used to work for Huawei. From what I remember, vi was just vim.

                              • chasil 5 days ago

                                You can see all the userland utilities by removing the "vi.HTML" suffix from the URL.

                                https://pubs.opengroup.org/onlinepubs/9799919799/utilities/

                                • anthk 5 days ago

                                  >mailx

                                  mbox should die; or maybe set as a legacy option. Current systems can handle thousands of email by using maildirs.

                                  Also, one day bsdgames will enter into POSIX maybe but as a test case, in order to be sure on how well the POSIX compatible API behaves.

                                  Phantasia(6) could be rewritten for balance and such...

                                  • wpollock 5 days ago

                                    >mbox should die;

                                    Mbox is useful for backups and for migration between different email systems (that use different databases internally). Mbox is also fine if you only have a hundred or so email folders and only process a few dozen emails a day, say for personal use (e.g. Thunderbird or k9).

                                    I agree that mbox is not okay for large scale mail servers. Maildir+ works much better in such cases.

                                    • anthk 4 days ago

                                      So does Maildir; reusing it between Mutt and GNUs or Claws Mail should be a child's play.

                                      Once you have tar to preserve perms just in case, your are done.

                                      Mbox on big mailboxes it's hell, anyone can understand that linear parsing will be slow as hell. It's like looking up a word file in a dictionary word by word from A to Z instead of directly heading to the first word letter...

                                • wpollock 5 days ago

                                  Note that vim includes a useful tutorial you can invoke by "vimtutor" on the command line or from within vim with ":help tutor"; for neovim try ":Tutorial".

                                  • anthk 4 days ago

                                    Nvi has :viusage and :exusage. Vim is not POSIX vi; vim to vi it's what zsh it's to sh. Nvi2 it's closer as it has very few additions on top of vi, but it has Unicode support which can be a lifesaver if you live in Europe or Japan, allowing you to use Nvi everywhere (I do, as it's my post editor under Mutt/Slrn,Tut and so on).

                                  • gpvos 4 days ago

                                    Note that vim is not POSIX-compliant, as it has no open mode.

                                    Open mode is a kind of single-line visual mode. I actually used it quite a bit over a 1200-baud modem line.

                                    • userbinator 5 days ago

                                      It's notable that vi has been specified by POSIX (along with ed and ex), but not emacs.

                                      • PhilipRoman 4 days ago

                                        https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xcu...

                                        > The community of emacs editing enthusiasts was adamant that the full emacs editor not be included in IEEE Std 1003.2-1992 because they were concerned that an attempt to standardize this very powerful environment would encourage vendors to ship versions conforming strictly to the standard, but lacking the extensibility required by the community. The author of the original emacs program also expressed his desire to omit the program. Furthermore, there were a number of historical UNIX systems that did not include emacs, or included it without supporting it, but there were very few that did not include and support vi.

                                        • spauldo 5 days ago

                                          vi was born on UNIX early enough that every UNIX wound up with it.

                                          Emacs was born on mainframes and made its way to UNIX much later, after vi had already become the standard.

                                          • skissane 4 days ago

                                            > Emacs was born on mainframes and made its way to UNIX much later, after vi had already become the standard.

                                            Berkeley released the first version of vi in 1978–development had started in 1976 but I don't believe pre-1978 versions were released publicly. The first versions of Unix for Emacs (James Gosling's implementation, and Warren Montgomery's implementation, developed independently of each other) were released in 1981. But I don't think that three year head start was the biggest factor here.

                                            I think a much bigger factor was the fact that vi came with BSD Unix for free, while Gosling Emacs was being sold as a commercial product (although also freely available under rather restrictive terms); I'm not sure what terms Montgomery Emacs (from Bell Labs) was available under, but it soon evolved into CCA Emacs (a commercial product). Free very often beats commercial. The first release of GNU Emacs wasn't until 1985.

                                            And then another major factor was that in 1983, AT&T decided to make vi part of UNIX System V. I think the reasons they decided against Emacs included the fact that they could get vi for free from Berkeley, whereas the most popular Unix Emacs implementations in 1983 they'd have to pay licensing fees for commercial use. Montgomery Emacs was developed by Bell Labs so they owned that, but it was relatively primitive and obscure; CCA Emacs was derived from Montgomery's, but had rewritten all the code so no longer was under Bell Labs copyright; GNU Emacs likewise started out as a modified version of Gosling's Emacs and then escaped Gosling's copyright by rewriting all his code, but in 1983 it wasn't an option yet, and its (proto-GPL) licensing terms likely would have been too scary for AT&T's lawyers anyway.

                                            • anthk 4 days ago

                                              This. Emacs came from GNU which GNU is not Unix; Emacs it's a tool to give Unix users freedoom (and a Lisp, OFC) from the Lisp Machines RMS used to use. Also, Emacs it's really huge, the closes to a "Posix Emacs" would be mg, as it's included under the OpenBSD base, but sadly it doesn't support Unicode. If it supported it, tons of Emacs users would use it as a quick editing tool, as 'mg' still launchers faster than 'emacs -nw -Q'.

                                              And, as you said, Emacs and Lisp were for big machines, and Emacs it's like psychodelic/progressive rock: something to freely experiment creatively without machine restrictions. If you improvise "live", as jazz masters do (Lisp Machines), the better.

                                              Unix would be like techno music from Kraftwerk: simple but well made beats and samples -machine made-, repetitive, they sound automated. But once they are put together they create something new and brilliant. Some people remix these samples and they create crazy stuff like the songs of The Avalanches, too. Kinda like Unix orthogonality between small tools and pipes.

                                              Very different philosophies, but mixing GNU (Unix clone) and Emacs (Emacs from ITS was distinct from GNU Emacs) created something really powerful. For instance, you could automate mail and usenet fetching and sending data in the background with daemons (freeing resources for Emacs and unblocking I/O) and hack the frontend/parsing code like crazy, Or Telega, with telega and telega-server as the daemon to talk with Telegram, or even something like Mu and Mu4e for Email. Or simply, EMMS calling mpv in the background for audio and video playing -you can watch movies fom Emacs- (and mpv itself to yt-dlp for online videos) seamlessly.

                                              In the art world, that would be like industrial music, a mix between automatization and improvisation, and, FFS, Ministry and some Prodigy songs were 100x better than Techno subgenres and every Hair Rock and Heavy Metal band with the same poses and tropes everywhere...

                                              • kragen 4 days ago

                                                Just to clarify, Emacs came from ITS, predating GNU by IIRC almost a decade and even the actual construction of any Lisp machines. GNU Emacs was at least the fifth Emacs, following the original PDP-10 Emacs, Multics Emacs, Zmacs, and Gosmacs.

                                                • anthk 4 days ago

                                                  I hope the downvote isn't because of your answer, because I already mentioned that. I even emulated ITS under Simh, and I tried both Emacs and MacLisp.

                                                  • kragen 4 days ago

                                                    I hope not too; your comment was very good, just a little confusing.

                                                    • spauldo 4 days ago

                                                      Who got downvoted? Both of your comments were accurate. The music comparison stuff is subjective, but that's not worth a downvote.

                                                      (I don't know how to see downvotes in Hacki, hence why I ask.)

                                                      • kragen 4 days ago

                                                        Possibly at some point anthk's comment was downvoted?

                                          • eviks 5 days ago

                                            > Move Down

                                            > Synopsis:

                                            > [count] j

                                            Why would you ever specify configurable shortcuts? Does is break posix when a user changes them?

                                            • porridgeraisin 4 days ago

                                              > Does it break posix

                                              A vim that ships out of the box with different shortcuts than those -- I presume yes. But if the user configures them then it's upto them I guess. Just like a user can swap around /bin/cat and /bin/echo.

                                            • webdevver 4 days ago

                                              posix to linux is what web standards are to chrome