And on top of this, an unlink is less error prone than a rm -f.
And on top of this, an unlink is less error prone than a rm -f.
This make it sound like this is useless, but I disagree. For example, recently I had some games crash because they couldn't find pulseaudio, and making a symlink from pulseaudio to /bin/true fixed my issue (and yes, they had sound). So there are certainly legitimate uses for it.
How do you know that this is true?
Is there any peer reviewed literature that supports this?
And it's not just that, I've seen first hand that even internal communication about customers are treated with more care as they can legally request all their data.
FWIW this is something most editors let you do trivially.
With VS Code, select the lines you want to sort, press Cmd-Shift-P to bring up fuzzy command search, type "sort", press enter. Your selected lines are sorted.
I think you might be surprised to find that all the major editors these days have most all of the little things you might want day-to-day covered. Of course the set of little things one cares about will differ from person to person and from the capabilities we've personally found the most use out of. It's hard to argue when that one thing you use every day isn't supported in some other editor, but the list of those is shrinking quicker than I suspect most people realize.
There are a lot of people contributing to these tools and that plus not having to reinvent every wheel from scratch (and maintain that code on top) means that modern editors can cut into the lead time advantage of something like Emacs quicker than you might otherwise think.
Though ultimately feature per feature, I don't think emacs looks all that great, but the difference is that you can actually use a lot of what it has to offer whereas it's difficult to do so in more modern editors (with fuzzy matching and all).
If it were this easy you wouldn't see so many people taking on so many unnecessary debts. Technical or otherwise.
So I ended up with a variant on Pledge's approach to wall-following. Head toward the goal until an obstacle is detected. Then, start wall-following, but simultaneously in both left and right directions. When one of the wall-follower tests can head towards the goal, do that, and kill off the other wall-follower. So you alternate between heading towards the goal in open space, cheaply, and wall following.
Searching both left and right simultaneously avoids taking the long way round some obstacles.
If you have an inaccessible node, astar will indeed scan everything. But to get around this I only had to add a limit to the number of frontier iterations which was just a conditional.