" when he made a typo and it worked: the command was fixed and rerun, he didn't need to retype the whole thing. i always wanted the oops command.
however, it didn't exist, or at least as i knew it. so i wrote a portable version of it (it seems it exists in zsh, a shell i just don't use). the python part of it is really simple, just a levenshtein distance calculator and a replacement engine. you need to create a command alias for it however:
ksh, sh, bash:
$ alias oops='history>/tmp/oops_history && ~/bin/oops.py'
csh and derivatives:
% alias oops 'history > /tmp/oops_history && ~/bin/oops.py'
here's a brief example of it in action:
$ emacss ~/bin/oops.py
ksh: emacss: not found
$ oops emacs
[ emacs opens and voila, working ... ]
i make a lot of typos and rather than cutting, pasting, fixing the line this makes it easier. some bugs and limitations:
let me know if you're interested in playing around with it.
- i need to make it use the damerau distance, which is better for spelling errors)
- not extensively field tested at all
- it doesn't leave a corrected mark in your history file
- it doesn't work for shell built-ins (e.g. cd)
next Sunday, Jan 04, 2009 @ 10:57am |
previous Sunday, Oct 26, 2008 @ 06:16pm
Last modified: Monday, Nov 17, 2008 @ 10:27am
copyright © 2002-2014 jose nazario, all rights reserved.