Something about this shell interests me. I just CANT put my finger on it.
edit: Jokes aside, this is a nice shell, there are no videos of youtube for it though, I should go through the doc's and record one.
edit2: OK I just tried playing around with the shell. It's got some really nice features, but then I said to myself "hey, lets try doing some work with this, I'd like to get rid of fedora 18's neutered package management GUI and replace it with yumex."
ok easy enough, whoops I forgot to use sudo.
ghoti@localhost ~/Videos> sudo !!
[sudo] password for ghoti:
sudo: !!: command not found
ghoti@localhost ~/Videos >
oh... ok... docs?
here it is, right at the very end of the documentation.
"Because history substitution is an awkward interface that was invented
before interactive line editing was even possible. Fish drops it in favor of
perfecting the interactive history recall interface. Switching requires a small
change of habits: if you want to modify an old line/word, first recall it, then
edit. E.g. don't type "sudo !!" - first press Up, then Home, then type "sudo "."
ridiculousFish, you arn't kidding around with that name are you?
It's perfectly reasonable. There is already an interface for recalling previous commands, and an interface for editing the command line. Combining them to issue a variation of a previous command is the logical thing to do. Having a completely wacky alternate syntax for the specific operation of "put the whole previous command in this place surrounded by new text" is a wart. It's like the irregular English syntax that you hate so much, except that in this case there's still time to fix it, because bash hasn't been around that long.
For example, Lojban uses a method of saying phonemes to describe words, like Hebrew, so the number 100,508,290 is just an utterance rather than a sentence.
panono k'io munobi k'io resono
One hundred million, five hundred and eight thousand, two hundred and ninety.
consistent, simple, fast, unambiguous. numbers are a common occurrence, so they should be fast to speak, So when the extremely common occurrence of me forgetting to include sudo for a command that requires escalated privileges, I expect that task made easier.
As an alternative, think of it like this. the specific operation of "put the whole previous command in this place surrounded by new text" is actually a common idiom in calculation programs. Commonly called "ans". Mathmatica actually marks the results of all its computations with a tag (I think t[n]) so you can recall arbitrarily.
That's not to say I'm a stick in the mud, if "sudo !!" sucks, make it better!
How about something that turns a command into a postfix command? Or actually having a hotkey recall the previous command? Maybe a hotkey that looks at the text in the argument then searches up the history to replace? so if I type sudo rm^U it takes 'rm' and searches up history, replacing it with the first match, "sudo rm -rf ~/opt/java"? Lots of possibilities!
How about you just press up arrow to recall the previous command, ctrl-A to go to the beginning of the line, and then type "sudo "? It's the same number of keystrokes as typing "sudo !!". And I'm sure you can use something other than up arrow to recall the previous command if you don't want to take your fingers off the home row.
Up and ctrl A are independent key strokes. They precede typing sudo, which is a logical train of thought ("Oh I forgot sudo, i should of typed sudo and then x").
! is a commonly used key in English language, and pressing it twice is fast, where as getting two desperate keys is not.
After the proposed action, you end up here:
sudo |something fishy
as opposed to here:
sudo something fishy|
which prevents you from writing an addendum to that command.
This sounds small, but I was doing what you suggested before I found out I could say "sudo !!" I immediately switched when I found out, and it's now a very common idiom for me. I switched from "up home sudo space" to "sudo space bang bang" for all the reasons described above.
When I made the comment. I was looking at this line:
For an overview of the features in *fishfish*, see the
Which I took as the official name of the shell, before I later realized it was some kind of wierd typo. my name is pronounced fish-fish. I was drawing attention to this https://en.wikipedia.org/wiki/Ghoti . I hate English, you see.
I don't hate English. In fact they got a whole lot right after they branched off. Just removing some of the stupidity from Scandinavian, German, French and other words makes a whole lot of difference (Seriously: Genders for words, who came up with that? ; )
> (Seriously: Genders for words, who came up with that? ; )
It's for entertainment purposes. Provides harmless amusement to native speakers of languages that have it, especially when English (or Chinese, or whatever underfeatured language) speakers fumble the genders of tables, forks, cars, etc.
More fun than a barrel of monkeys. Also good for poets, makes their work more difficult, thus rarer and better smelling when burnt.