diff --git a/README.md b/README.md index ee52858f..e903d76b 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,7 @@ using matched rule and run it. Rules enabled by default: * `cd_parent` – changes `cd..` to `cd ..`; * `cd_mkdir` – creates directories before cd'ing into them; * `cp_omitting_directory` – adds `-a` when you `cp` directory; +* `dry` – fix repetitions like "git git push"; * `fix_alt_space` – replaces Alt+Space with Space character; * `git_add` – fix *"Did you forget to 'git add'?"*; * `git_no_command` – fixes wrong git commands like `git brnch`; diff --git a/thefuck/rules/dry.py b/thefuck/rules/dry.py new file mode 100644 index 00000000..86759b32 --- /dev/null +++ b/thefuck/rules/dry.py @@ -0,0 +1,12 @@ +def match(command, settings): + split_command = command.script.split() + + return len(split_command) >= 2 and split_command[0] == split_command[1] + + +def get_new_command(command, settings): + return command.script[command.script.find(' '):] + +# it should be rare enough to actually have to type twice the same word, so +# this rule can have a higher priority to come before things like "cd cd foo" +priority = 900