: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.
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.
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.
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.
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.
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.
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.
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...
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".
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).
> 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.
> 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.
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...
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.
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.
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.
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.
Ugh, all this crazy head-spinning cursor commotion... I'll just keep using ed, thank you very much.
Always keep your copy of Ed Mastery on-hand:
https://mwl.io/nonfiction/tools#ed
If you think about it, it's a cheap book on sed too.
Just start ex instead. Command-based line editing without the hassle of a cursor.
Yeah, it's just better to stick to the standard editor.
COPY CON ...
on DOS, bro.
nuttin else comes close
or if ur 2 weak, edlin.
I actually use "COPY CON" a fair amount. Also a decent amount of "cat > foo.sh".
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.
For exploring the POSIX standard the frames version is very useful: https://pubs.opengroup.org/onlinepubs/9799919799/
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.
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.
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.
Thanks, appreciate the feedback
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
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...
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.
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.
Thank you! It’s an unfinished project of mine. Still looking at adding more levels and allowing users to upload their own.
Can I suggest dropping the sign up requirement and email verification to try it out?
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.
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/
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
> 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.
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.
I used to work for Huawei. From what I remember, vi was just vim.
Somebody spent time and money to make vim posix-compliant: https://vimhelp.org/vi_diff.txt.html#posix
You can see all the userland utilities by removing the "vi.HTML" suffix from the URL.
https://pubs.opengroup.org/onlinepubs/9799919799/utilities/
>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...
>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.
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...
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".
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).
It's notable that vi has been specified by POSIX (along with ed and ex), but not emacs.
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.
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.
> 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.
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...
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.
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.
I hope not too; your comment was very good, just a little confusing.
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.)
Possibly at some point anthk's comment was downvoted?
> Move Down
> Synopsis:
> [count] j
Why would you ever specify configurable shortcuts? Does is break posix when a user changes them?
> 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.
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.
posix to linux is what web standards are to chrome