nvbn / thefuck

Magnificent app which corrects your previous console command.
MIT License
83.92k stars 3.41k forks source link

no_command rule doesn't work properly with executables that have an uppercase name #1209

Open neelkarma opened 3 years ago

neelkarma commented 3 years ago

The output of thefuck --version (something like The Fuck 3.1 using Python 3.5.0 and Bash 4.4.12(1)-release):

The Fuck 3.31 using Python 3.9.5 and PowerShell 5.1.19041.1023

Your system (Debian 7, ArchLinux, Windows, etc.):

Windows 10

How to reproduce the bug:

On Windows, the ping executable is called PING.EXE (uppercase). It doesn't work with the no_command rule, as shown:

~
-> pingg
pingg: The term 'pingg' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

~
-> fuck
No fucks given

~ took 2s
-> PINGG
PINGG: The term 'PINGG' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

~
-> fuck
PING.EXE [enter/↑/↓/ctrl+c]
Aborted

The output of The Fuck with THEFUCK_DEBUG=true exported (typically execute export THEFUCK_DEBUG=true in your shell before The Fuck):

~
-> pingg
pingg: The term 'pingg' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

~
-> fuck
DEBUG: Run with settings: {'alter_history': True,
 'debug': True,
 'env': {'GIT_TRACE': '1', 'LANG': 'C', 'LC_ALL': 'C'},
 'exclude_rules': [],
 'excluded_search_path_prefixes': [],
 'history_limit': None,
 'instant_mode': False,
 'no_colors': False,
 'num_close_matches': 3,
 'priority': {},
 'repeat': False,
 'require_confirmation': True,
 'rules': [<const: All rules enabled>],
 'slow_commands': ['lein', 'react-native', 'gradle', './gradlew', 'vagrant'],
 'user_dir': WindowsPath('C:/Users/nsdjs/.config/thefuck'),
 'wait_command': 3,
 'wait_slow_command': 15}
DEBUG: Received output: 'pingg' is not recognized as an internal or external command,
operable program or batch file.

DEBUG: Call: pingg; with env: {'ALLUSERSPROFILE': 'C:\\ProgramData', 'ANDROID_HOME': 'C:\\Users\\nsdjs\\AppData\\Local\\Android\\Sdk', 'ANDROID_SDK_ROOT': 'C:\\Users\\nsdjs\\AppData\\Local\\Android\\Sdk', 'APPDATA': 'C:\\Users\\nsdjs\\AppData\\Roaming', 'CC': 'clang', 'CHOCOLATEYINSTALL': 'C:\\ProgramData\\chocolatey', 'CHOCOLATEYLASTPATHUPDATE': '132665810047181697', 'CHOCOLATEYTOOLSLOCATION': 'C:\\tools', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'COMPUTERNAME': 'LAPTOP-EMBTSD2M', 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe', 'DRIVERDATA': 'C:\\Windows\\System32\\Drivers\\DriverData', 'EDITOR': 'nvim', 'FNM_ARCH': 'x64', 'FNM_DIR': 'C:\\Users\\nsdjs\\.fnm', 'FNM_LOGLEVEL': 'info', 'FNM_MULTISHELL_PATH': 'C:\\Users\\nsdjs\\AppData\\Local\\Temp\\fnm_multishells\\21456_1624074310240', 'FNM_NODE_DIST_MIRROR': 'https://nodejs.org/dist', 'FZF_DEFAULT_COMMAND': 'rg --files', 'GOPATH': 'C:\\Users\\nsdjs\\go', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\\Users\\nsdjs', 'INTEL_DEV_REDIST': 'C:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\', 'JAVA_HOME': 'C:\\Program Files\\OpenJDK\\openjdk-8u292-b10', 'LOCALAPPDATA': 'C:\\Users\\nsdjs\\AppData\\Local', 'LOGONSERVER': '\\\\LAPTOP-EMBTSD2M', 'MIC_LD_LIBRARY_PATH': 'C:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\compiler\\lib\\mic', 'NUMBER_OF_PROCESSORS': '8', 'ONEDRIVE': 'C:\\Users\\nsdjs\\OneDrive - NSW Department of Education', 'ONEDRIVECOMMERCIAL': 'C:\\Users\\nsdjs\\OneDrive - NSW Department of Education', 'ONEDRIVECONSUMER': 'C:\\Users\\nsdjs\\OneDrive', 'OPENCV_DIR': 'C:\\tools\\opencv\\build\\', 'OS': 'Windows_NT', 'PATH': 'C:\\Users\\nsdjs\\AppData\\Local\\Temp\\fnm_multishells\\21456_1624074310240;C:\\Program Files\\PowerShell\\7;C:\\Python39\\Scripts\\;C:\\Python39\\;C:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;C:\\ProgramData\\Oracle\\Java\\javapath;C:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\redist\\intel64\\compiler;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\;C:\\Program Files\\Microsoft SQL Server\\120\\Tools\\Binn\\;C:\\src\\flutter\\bin;C:\\Users\\nsdjs\\platform-tools;C:\\Program Files (x86)\\GnuWin32\\bin;C:\\Program Files\\dotnet\\;C:\\src\\flutter\\bin\\cache\\dart-sdk\\bin;C:\\bin;C:\\Program Files\\Java\\jdk1.8.0_271\\bin;C:\\bin\\libwebp-1.1.0-windows-x64\\bin;C:\\ProgramData\\chocolatey\\bin;C:\\Program Files\\Docker\\Docker\\resources\\bin;C:\\ProgramData\\DockerDesktop\\version-bin;C:\\Program Files\\LLVM\\bin;C:\\Program Files\\PowerShell\\7\\;C:\\tools\\opencv\\build\\\\bin;C:\\bin\\lua-language-server\\bin\\Windows;C:\\bin\\danser-go;C:\\Program Files\\PuTTY\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\OpenJDK\\openjdk-8u292-b10\\bin;C:\\Program Files\\Git\\cmd;C:\\Program Files\\Go\\bin;C:\\Program Files (x86)\\Gpg4win\\..\\GnuPG\\bin;C:\\Users\\nsdjs\\scoop\\shims;C:\\Users\\nsdjs\\.windows-build-tools\\python27\\;C:\\Users\\nsdjs\\.cargo\\bin;C:\\Users\\nsdjs\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\nsdjs\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\nsdjs\\.dotnet\\tools;C:\\Program Files (x86)\\GitHub CLI\\;C:\\Users\\nsdjs\\AppData\\Local\\Android\\Sdk\\platform-tools;C:\\Users\\nsdjs\\go\\bin;C:\\tools\\neovim\\Neovim\\bin;C:\\Users\\nsdjs\\AppData\\Local\\Yarn\\bin;C:\\Users\\nsdjs\\AppData\\Local\\Android\\Sdk\\tools;C:\\Users\\nsdjs\\AppData\\Local\\Programs\\hyper\\resources\\bin;C:\\Users\\nsdjs\\Documents\\PowerShell\\Scripts;C:\\Users\\nsdjs\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\nsdjs\\AppData\\Local\\Programs\\Hyper\\resources\\bin;C:\\Users\\nsdjs\\go\\bin', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW;.CPL', 'POWERSHELL_DISTRIBUTION_CHANNEL': 'MSI:Windows 10 Home Single Language', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'PROCESSOR_IDENTIFIER': 'AMD64 Family 23 Model 24 Stepping 1, AuthenticAMD', 'PROCESSOR_LEVEL': '23', 'PROCESSOR_REVISION': '1801', 'PROGRAMDATA': 'C:\\ProgramData', 'PROGRAMFILES': 'C:\\Program Files', 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)', 'PROGRAMW6432': 'C:\\Program Files', 'PSMODULEPATH': 'C:\\Users\\nsdjs\\Documents\\PowerShell\\Modules;C:\\Program Files\\PowerShell\\Modules;c:\\program files\\powershell\\7\\Modules;C:\\Program Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules', 'PUBLIC': 'C:\\Users\\Public', 'PYTHONIOENCODING': 'utf-8', 'STARSHIP_SESSION_KEY': 'Q4FXvAPozU5rnpa9', 'STARSHIP_SHELL': 'powershell', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\\WINDOWS', 'TEMP': 'C:\\Users\\nsdjs\\AppData\\Local\\Temp', 'THEFUCK_DEBUG': 'true', 'TMP': 'C:\\Users\\nsdjs\\AppData\\Local\\Temp', 'USERDOMAIN': 'LAPTOP-EMBTSD2M', 'USERDOMAIN_ROAMINGPROFILE': 'LAPTOP-EMBTSD2M', 'USERNAME': 'nsdjs', 'USERPROFILE': 'C:\\Users\\nsdjs', 'VBOX_MSI_INSTALL_PATH': 'C:\\Program Files\\Oracle\\VirtualBox\\', 'VIRTUAL_ENV_DISABLE_PROMPT': '1', 'WINDIR': 'C:\\WINDOWS', 'WSLENV': 'WT_SESSION::WT_PROFILE_ID', 'WT_PROFILE_ID': '{574e775e-4f2a-5b96-ac1e-a2962a402336}', 'WT_SESSION': 'c1e82de6-9c5e-4409-904a-b860d166f83c', 'LC_ALL': 'C', 'LANG': 'C', 'GIT_TRACE': '1'}; is slow: False took: 0:00:00.023995
DEBUG: Importing rule: adb_unknown_command; took: 0:00:00
DEBUG: Importing rule: ag_literal; took: 0:00:00.001002
DEBUG: Importing rule: apt_get; took: 0:00:00.026530
DEBUG: Importing rule: apt_get_search; took: 0:00:00.002000
DEBUG: Importing rule: apt_invalid_operation; took: 0:00:00.001989
DEBUG: Importing rule: apt_list_upgradable; took: 0:00:00.001000
DEBUG: Importing rule: apt_upgrade; took: 0:00:00.000999
DEBUG: Importing rule: aws_cli; took: 0:00:00.001022
DEBUG: Importing rule: az_cli; took: 0:00:00.000998
DEBUG: Importing rule: brew_cask_dependency; took: 0:00:00.024011
DEBUG: Importing rule: brew_install; took: 0:00:00.001011
DEBUG: Importing rule: brew_link; took: 0:00:00.000980
DEBUG: Importing rule: brew_reinstall; took: 0:00:00.001003
DEBUG: Importing rule: brew_uninstall; took: 0:00:00.001002
DEBUG: Importing rule: brew_unknown_command; took: 0:00:00.000991
DEBUG: Importing rule: brew_update_formula; took: 0:00:00.001002
DEBUG: Importing rule: brew_upgrade; took: 0:00:00
DEBUG: Importing rule: cargo; took: 0:00:00.001000
DEBUG: Importing rule: cargo_no_command; took: 0:00:00.001001
DEBUG: Importing rule: cat_dir; took: 0:00:00.000999
DEBUG: Importing rule: cd_correction; took: 0:00:00.004995
DEBUG: Importing rule: cd_cs; took: 0:00:00.001001
DEBUG: Importing rule: cd_mkdir; took: 0:00:00.000999
DEBUG: Importing rule: cd_parent; took: 0:00:00.000999
DEBUG: Importing rule: chmod_x; took: 0:00:00.000998
DEBUG: Importing rule: choco_install; took: 0:00:00.011994
DEBUG: Importing rule: composer_not_command; took: 0:00:00.001006
DEBUG: Importing rule: conda_mistype; took: 0:00:00.001001
DEBUG: Importing rule: cp_create_destination; took: 0:00:00.000997
DEBUG: Importing rule: cp_omitting_directory; took: 0:00:00.000998
DEBUG: Importing rule: cpp11; took: 0:00:00.002004
DEBUG: Importing rule: dirty_untar; took: 0:00:00.005008
DEBUG: Importing rule: dirty_unzip; took: 0:00:00.002995
DEBUG: Importing rule: django_south_ghost; took: 0:00:00.001015
DEBUG: Importing rule: django_south_merge; took: 0:00:00.001000
DEBUG: Importing rule: dnf_no_such_command; took: 0:00:00.026003
DEBUG: Importing rule: docker_image_being_used_by_container; took: 0:00:00.002000
DEBUG: Importing rule: docker_login; took: 0:00:00.000999
DEBUG: Importing rule: docker_not_command; took: 0:00:00.012006
DEBUG: Importing rule: dry; took: 0:00:00.000989
DEBUG: Importing rule: fab_command_not_found; took: 0:00:00.000999
DEBUG: Importing rule: fix_alt_space; took: 0:00:00.001000
DEBUG: Importing rule: fix_file; took: 0:00:00.003009
DEBUG: Importing rule: gem_unknown_command; took: 0:00:00.021990
DEBUG: Importing rule: git_add; took: 0:00:00.001000
DEBUG: Importing rule: git_add_force; took: 0:00:00.001006
DEBUG: Importing rule: git_bisect_usage; took: 0:00:00.001002
DEBUG: Importing rule: git_branch_delete; took: 0:00:00.000998
DEBUG: Importing rule: git_branch_delete_checked_out; took: 0:00:00.001001
DEBUG: Importing rule: git_branch_exists; took: 0:00:00.001001
DEBUG: Importing rule: git_branch_list; took: 0:00:00
DEBUG: Importing rule: git_checkout; took: 0:00:00.001001
DEBUG: Importing rule: git_clone_git_clone; took: 0:00:00.000999
DEBUG: Importing rule: git_commit_amend; took: 0:00:00.001001
DEBUG: Importing rule: git_commit_reset; took: 0:00:00.000998
DEBUG: Importing rule: git_diff_no_index; took: 0:00:00
DEBUG: Importing rule: git_diff_staged; took: 0:00:00.001003
DEBUG: Importing rule: git_fix_stash; took: 0:00:00.001008
DEBUG: Importing rule: git_flag_after_filename; took: 0:00:00.001002
DEBUG: Importing rule: git_help_aliased; took: 0:00:00.001004
DEBUG: Importing rule: git_hook_bypass; took: 0:00:00.001995
DEBUG: Importing rule: git_lfs_mistype; took: 0:00:00.000999
DEBUG: Importing rule: git_merge; took: 0:00:00.000997
DEBUG: Importing rule: git_merge_unrelated; took: 0:00:00.001000
DEBUG: Importing rule: git_not_command; took: 0:00:00
DEBUG: Importing rule: git_pull; took: 0:00:00.000999
DEBUG: Importing rule: git_pull_clone; took: 0:00:00.001001
DEBUG: Importing rule: git_pull_uncommitted_changes; took: 0:00:00.001022
DEBUG: Importing rule: git_push; took: 0:00:00.000999
DEBUG: Importing rule: git_push_different_branch_names; took: 0:00:00.001000
DEBUG: Importing rule: git_push_force; took: 0:00:00.002006
DEBUG: Importing rule: git_push_pull; took: 0:00:00.001002
DEBUG: Importing rule: git_push_without_commits; took: 0:00:00.001007
DEBUG: Importing rule: git_rebase_merge_dir; took: 0:00:00.001002
DEBUG: Importing rule: git_rebase_no_changes; took: 0:00:00.000996
DEBUG: Importing rule: git_remote_delete; took: 0:00:00.000998
DEBUG: Importing rule: git_remote_seturl_add; took: 0:00:00.001000
DEBUG: Importing rule: git_rm_local_modifications; took: 0:00:00.001007
DEBUG: Importing rule: git_rm_recursive; took: 0:00:00.000993
DEBUG: Importing rule: git_rm_staged; took: 0:00:00
DEBUG: Importing rule: git_stash; took: 0:00:00.000999
DEBUG: Importing rule: git_stash_pop; took: 0:00:00.001001
DEBUG: Importing rule: git_tag_force; took: 0:00:00.001002
DEBUG: Importing rule: git_two_dashes; took: 0:00:00.001992
DEBUG: Importing rule: go_run; took: 0:00:00.000998
DEBUG: Importing rule: go_unknown_command; took: 0:00:00.017000
DEBUG: Importing rule: gradle_no_task; took: 0:00:00.002004
DEBUG: Importing rule: gradle_wrapper; took: 0:00:00.000993
DEBUG: Importing rule: grep_arguments_order; took: 0:00:00.001012
DEBUG: Importing rule: grep_recursive; took: 0:00:00.000992
DEBUG: Importing rule: grunt_task_not_found; took: 0:00:00
DEBUG: Importing rule: gulp_not_task; took: 0:00:00.001002
DEBUG: Importing rule: has_exists_script; took: 0:00:00.001000
DEBUG: Importing rule: heroku_multiple_apps; took: 0:00:00.000997
DEBUG: Importing rule: heroku_not_command; took: 0:00:00.001001
DEBUG: Importing rule: history; took: 0:00:00.001000
DEBUG: Importing rule: hostscli; took: 0:00:00.001008
DEBUG: Importing rule: ifconfig_device_not_found; took: 0:00:00.001003
DEBUG: Importing rule: java; took: 0:00:00.001000
DEBUG: Importing rule: javac; took: 0:00:00.000997
DEBUG: Importing rule: lein_not_task; took: 0:00:00
DEBUG: Importing rule: ln_no_hard_link; took: 0:00:00.001004
DEBUG: Importing rule: ln_s_order; took: 0:00:00.000999
DEBUG: Importing rule: long_form_help; took: 0:00:00.001006
DEBUG: Importing rule: ls_all; took: 0:00:00.000994
DEBUG: Importing rule: ls_lah; took: 0:00:00.001002
DEBUG: Importing rule: man; took: 0:00:00.000999
DEBUG: Importing rule: man_no_space; took: 0:00:00.000997
DEBUG: Importing rule: mercurial; took: 0:00:00.000997
DEBUG: Importing rule: missing_space_before_subcommand; took: 0:00:00.000998
DEBUG: Importing rule: mkdir_p; took: 0:00:00
DEBUG: Importing rule: mvn_no_command; took: 0:00:00.000999
DEBUG: Importing rule: mvn_unknown_lifecycle_phase; took: 0:00:00.001000
DEBUG: Importing rule: nixos_cmd_not_found; took: 0:00:00.024774
DEBUG: Importing rule: no_command; took: 0:00:00.001003
DEBUG: Importing rule: no_such_file; took: 0:00:00.001004
DEBUG: Importing rule: npm_missing_script; took: 0:00:00.002991
DEBUG: Importing rule: npm_run_script; took: 0:00:00.001003
DEBUG: Importing rule: npm_wrong_command; took: 0:00:00.001000
DEBUG: Importing rule: omnienv_no_such_command; took: 0:00:00.083996
DEBUG: Importing rule: open; took: 0:00:00.002002
DEBUG: Importing rule: pacman; took: 0:00:00.070994
DEBUG: Importing rule: pacman_invalid_option; took: 0:00:00.002004
DEBUG: Importing rule: pacman_not_found; took: 0:00:00.001000
DEBUG: Importing rule: path_from_history; took: 0:00:00.001003
DEBUG: Importing rule: php_s; took: 0:00:00.000998
DEBUG: Importing rule: pip_install; took: 0:00:00.001004
DEBUG: Importing rule: pip_unknown_command; took: 0:00:00.000999
DEBUG: Importing rule: port_already_in_use; took: 0:00:00.023001
DEBUG: Importing rule: prove_recursively; took: 0:00:00.001005
DEBUG: Importing rule: pyenv_no_such_command; took: 0:00:00.000996
DEBUG: Importing rule: python_command; took: 0:00:00.000999
DEBUG: Importing rule: python_execute; took: 0:00:00.000998
DEBUG: Importing rule: python_module_error; took: 0:00:00.001005
DEBUG: Importing rule: quotation_marks; took: 0:00:00.000995
DEBUG: Importing rule: react_native_command_unrecognized; took: 0:00:00.001000
DEBUG: Importing rule: remove_shell_prompt_literal; took: 0:00:00
DEBUG: Importing rule: remove_trailing_cedilla; took: 0:00:00.001000
DEBUG: Importing rule: rm_dir; took: 0:00:00.001001
DEBUG: Importing rule: rm_root; took: 0:00:00.000999
DEBUG: Importing rule: scm_correction; took: 0:00:00.001000
DEBUG: Importing rule: sed_unterminated_s; took: 0:00:00.001000
DEBUG: Importing rule: sl_ls; took: 0:00:00.001003
DEBUG: Importing rule: ssh_known_hosts; took: 0:00:00.001997
DEBUG: Importing rule: sudo; took: 0:00:00.001001
DEBUG: Importing rule: sudo_command_from_user_path; took: 0:00:00.001006
DEBUG: Importing rule: switch_lang; took: 0:00:00.000994
DEBUG: Importing rule: systemctl; took: 0:00:00
DEBUG: Importing rule: terraform_init; took: 0:00:00.000998
DEBUG: Importing rule: test.py; took: 0:00:00.000998
DEBUG: Importing rule: tmux; took: 0:00:00.000995
DEBUG: Importing rule: touch; took: 0:00:00.001003
DEBUG: Importing rule: tsuru_login; took: 0:00:00.001002
DEBUG: Importing rule: tsuru_not_command; took: 0:00:00.002004
DEBUG: Importing rule: unknown_command; took: 0:00:00.002000
DEBUG: Importing rule: unsudo; took: 0:00:00.000991
DEBUG: Importing rule: vagrant_up; took: 0:00:00
DEBUG: Importing rule: whois; took: 0:00:00.001003
DEBUG: Importing rule: workon_doesnt_exists; took: 0:00:00.001005
DEBUG: Importing rule: yarn_alias; took: 0:00:00
DEBUG: Importing rule: yarn_command_not_found; took: 0:00:00.001996
DEBUG: Importing rule: yarn_command_replaced; took: 0:00:00.001001
DEBUG: Importing rule: yarn_help; took: 0:00:00.001002
DEBUG: Importing rule: yum_invalid_operation; took: 0:00:00.024000
DEBUG: Trying rule: path_from_history; took: 0:00:00.000996
DEBUG: Trying rule: cd_cs; took: 0:00:00
DEBUG: Trying rule: dry; took: 0:00:00
DEBUG: Trying rule: git_hook_bypass; took: 0:00:00
DEBUG: Trying rule: git_stash_pop; took: 0:00:00
DEBUG: Trying rule: test.py; took: 0:00:00
DEBUG: Trying rule: adb_unknown_command; took: 0:00:00
DEBUG: Trying rule: ag_literal; took: 0:00:00
DEBUG: Trying rule: aws_cli; took: 0:00:00
DEBUG: Trying rule: az_cli; took: 0:00:00
DEBUG: Trying rule: brew_link; took: 0:00:00
DEBUG: Trying rule: brew_reinstall; took: 0:00:00.000996
DEBUG: Trying rule: brew_uninstall; took: 0:00:00
DEBUG: Trying rule: brew_update_formula; took: 0:00:00
DEBUG: Trying rule: cargo; took: 0:00:00
DEBUG: Trying rule: cargo_no_command; took: 0:00:00
DEBUG: Trying rule: cat_dir; took: 0:00:00
DEBUG: Trying rule: cd_correction; took: 0:00:00
DEBUG: Trying rule: cd_mkdir; took: 0:00:00
DEBUG: Trying rule: cd_parent; took: 0:00:00
DEBUG: Trying rule: chmod_x; took: 0:00:00
DEBUG: Trying rule: choco_install; took: 0:00:00
DEBUG: Trying rule: composer_not_command; took: 0:00:00
DEBUG: Trying rule: conda_mistype; took: 0:00:00
DEBUG: Trying rule: cp_create_destination; took: 0:00:00
DEBUG: Trying rule: cp_omitting_directory; took: 0:00:00
DEBUG: Trying rule: cpp11; took: 0:00:00
DEBUG: Trying rule: dirty_untar; took: 0:00:00
DEBUG: Trying rule: dirty_unzip; took: 0:00:00
DEBUG: Trying rule: django_south_ghost; took: 0:00:00
DEBUG: Trying rule: django_south_merge; took: 0:00:00
DEBUG: Trying rule: docker_image_being_used_by_container; took: 0:00:00
DEBUG: Trying rule: docker_login; took: 0:00:00
DEBUG: Trying rule: docker_not_command; took: 0:00:00
DEBUG: Trying rule: fab_command_not_found; took: 0:00:00
DEBUG: Trying rule: fix_alt_space; took: 0:00:00
DEBUG: Trying rule: fix_file; took: 0:00:00
DEBUG: Trying rule: gem_unknown_command; took: 0:00:00
DEBUG: Trying rule: git_add; took: 0:00:00
DEBUG: Trying rule: git_add_force; took: 0:00:00
DEBUG: Trying rule: git_bisect_usage; took: 0:00:00
DEBUG: Trying rule: git_branch_delete; took: 0:00:00
DEBUG: Trying rule: git_branch_delete_checked_out; took: 0:00:00
DEBUG: Trying rule: git_branch_exists; took: 0:00:00
DEBUG: Trying rule: git_branch_list; took: 0:00:00
DEBUG: Trying rule: git_checkout; took: 0:00:00
DEBUG: Trying rule: git_clone_git_clone; took: 0:00:00
DEBUG: Trying rule: git_commit_amend; took: 0:00:00
DEBUG: Trying rule: git_commit_reset; took: 0:00:00
DEBUG: Trying rule: git_diff_no_index; took: 0:00:00
DEBUG: Trying rule: git_diff_staged; took: 0:00:00
DEBUG: Trying rule: git_fix_stash; took: 0:00:00
DEBUG: Trying rule: git_flag_after_filename; took: 0:00:00
DEBUG: Trying rule: git_help_aliased; took: 0:00:00
DEBUG: Trying rule: git_lfs_mistype; took: 0:00:00
DEBUG: Trying rule: git_merge; took: 0:00:00
DEBUG: Trying rule: git_merge_unrelated; took: 0:00:00
DEBUG: Trying rule: git_not_command; took: 0:00:00
DEBUG: Trying rule: git_pull; took: 0:00:00
DEBUG: Trying rule: git_pull_clone; took: 0:00:00
DEBUG: Trying rule: git_pull_uncommitted_changes; took: 0:00:00
DEBUG: Trying rule: git_push; took: 0:00:00
DEBUG: Trying rule: git_push_different_branch_names; took: 0:00:00
DEBUG: Trying rule: git_push_pull; took: 0:00:00
DEBUG: Trying rule: git_push_without_commits; took: 0:00:00
DEBUG: Trying rule: git_rebase_merge_dir; took: 0:00:00
DEBUG: Trying rule: git_rebase_no_changes; took: 0:00:00
DEBUG: Trying rule: git_remote_delete; took: 0:00:00
DEBUG: Trying rule: git_remote_seturl_add; took: 0:00:00
DEBUG: Trying rule: git_rm_local_modifications; took: 0:00:00
DEBUG: Trying rule: git_rm_recursive; took: 0:00:00
DEBUG: Trying rule: git_rm_staged; took: 0:00:00
DEBUG: Trying rule: git_stash; took: 0:00:00
DEBUG: Trying rule: git_tag_force; took: 0:00:00
DEBUG: Trying rule: git_two_dashes; took: 0:00:00
DEBUG: Trying rule: go_run; took: 0:00:00
DEBUG: Trying rule: go_unknown_command; took: 0:00:00
DEBUG: Trying rule: gradle_no_task; took: 0:00:00
DEBUG: Trying rule: gradle_wrapper; took: 0:00:00
DEBUG: Trying rule: grep_arguments_order; took: 0:00:00
DEBUG: Trying rule: grep_recursive; took: 0:00:00
DEBUG: Trying rule: grunt_task_not_found; took: 0:00:00
DEBUG: Trying rule: gulp_not_task; took: 0:00:00
DEBUG: Trying rule: has_exists_script; took: 0:00:00
DEBUG: Trying rule: heroku_multiple_apps; took: 0:00:00
DEBUG: Trying rule: heroku_not_command; took: 0:00:00
DEBUG: Trying rule: hostscli; took: 0:00:00
DEBUG: Trying rule: ifconfig_device_not_found; took: 0:00:00
DEBUG: Trying rule: java; took: 0:00:00
DEBUG: Trying rule: javac; took: 0:00:00
DEBUG: Trying rule: lein_not_task; took: 0:00:00
DEBUG: Trying rule: ln_no_hard_link; took: 0:00:00
DEBUG: Trying rule: ln_s_order; took: 0:00:00
DEBUG: Trying rule: ls_all; took: 0:00:00
DEBUG: Trying rule: ls_lah; took: 0:00:00.000998
DEBUG: Trying rule: man; took: 0:00:00
DEBUG: Trying rule: mercurial; took: 0:00:00
DEBUG: Trying rule: mkdir_p; took: 0:00:00
DEBUG: Trying rule: mvn_no_command; took: 0:00:00
DEBUG: Trying rule: mvn_unknown_lifecycle_phase; took: 0:00:00
DEBUG: Trying rule: no_such_file; took: 0:00:00.000999
DEBUG: Trying rule: npm_missing_script; took: 0:00:00
DEBUG: Trying rule: npm_run_script; took: 0:00:00
DEBUG: Trying rule: npm_wrong_command; took: 0:00:00
DEBUG: Trying rule: open; took: 0:00:00
DEBUG: Trying rule: pacman_invalid_option; took: 0:00:00
DEBUG: Trying rule: php_s; took: 0:00:00
DEBUG: Trying rule: pip_install; took: 0:00:00
DEBUG: Trying rule: pip_unknown_command; took: 0:00:00
DEBUG: Trying rule: prove_recursively; took: 0:00:00
DEBUG: Trying rule: pyenv_no_such_command; took: 0:00:00
DEBUG: Trying rule: python_command; took: 0:00:00
DEBUG: Trying rule: python_execute; took: 0:00:00
DEBUG: Trying rule: python_module_error; took: 0:00:00
DEBUG: Trying rule: quotation_marks; took: 0:00:00
DEBUG: Trying rule: react_native_command_unrecognized; took: 0:00:00
DEBUG: Trying rule: remove_shell_prompt_literal; took: 0:00:00
DEBUG: Trying rule: remove_trailing_cedilla; took: 0:00:00
DEBUG: Trying rule: rm_dir; took: 0:00:00
DEBUG: Trying rule: scm_correction; took: 0:00:00
DEBUG: Trying rule: sed_unterminated_s; took: 0:00:00
DEBUG: Trying rule: sl_ls; took: 0:00:00
DEBUG: Trying rule: ssh_known_hosts; took: 0:00:00
DEBUG: Trying rule: sudo; took: 0:00:00
DEBUG: Trying rule: sudo_command_from_user_path; took: 0:00:00.000998
DEBUG: Trying rule: switch_lang; took: 0:00:00
DEBUG: Trying rule: systemctl; took: 0:00:00
DEBUG: Trying rule: terraform_init; took: 0:00:00.001003
DEBUG: Trying rule: tmux; took: 0:00:00
DEBUG: Trying rule: touch; took: 0:00:00
DEBUG: Trying rule: tsuru_login; took: 0:00:00
DEBUG: Trying rule: tsuru_not_command; took: 0:00:00
DEBUG: Trying rule: unknown_command; took: 0:00:00
DEBUG: Trying rule: unsudo; took: 0:00:00
DEBUG: Trying rule: vagrant_up; took: 0:00:00
DEBUG: Trying rule: whois; took: 0:00:00
DEBUG: Trying rule: workon_doesnt_exists; took: 0:00:00
DEBUG: Trying rule: yarn_alias; took: 0:00:00
DEBUG: Trying rule: yarn_command_not_found; took: 0:00:00
DEBUG: Trying rule: yarn_command_replaced; took: 0:00:00
DEBUG: Trying rule: yarn_help; took: 0:00:00
DEBUG: Trying rule: man_no_space; took: 0:00:00
DEBUG: Trying rule: no_command; took: 0:00:01.310566
DEBUG: Trying rule: missing_space_before_subcommand; took: 0:00:00.002999
DEBUG: Trying rule: long_form_help; took: 0:00:00.001004
DEBUG: Trying rule: history; took: 0:00:00.002004
No fucks given
DEBUG: Total took: 0:00:01.999125

~ took 2s
-> PINGG
PINGG: The term 'PINGG' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

~
-> fuck
DEBUG: Run with settings: {'alter_history': True,
 'debug': True,
 'env': {'GIT_TRACE': '1', 'LANG': 'C', 'LC_ALL': 'C'},
 'exclude_rules': [],
 'excluded_search_path_prefixes': [],
 'history_limit': None,
 'instant_mode': False,
 'no_colors': False,
 'num_close_matches': 3,
 'priority': {},
 'repeat': False,
 'require_confirmation': True,
 'rules': [<const: All rules enabled>],
 'slow_commands': ['lein', 'react-native', 'gradle', './gradlew', 'vagrant'],
 'user_dir': WindowsPath('C:/Users/nsdjs/.config/thefuck'),
 'wait_command': 3,
 'wait_slow_command': 15}
DEBUG: Received output: 'PINGG' is not recognized as an internal or external command,
operable program or batch file.

DEBUG: Call: PINGG; with env: {'ALLUSERSPROFILE': 'C:\\ProgramData', 'ANDROID_HOME': 'C:\\Users\\nsdjs\\AppData\\Local\\Android\\Sdk', 'ANDROID_SDK_ROOT': 'C:\\Users\\nsdjs\\AppData\\Local\\Android\\Sdk', 'APPDATA': 'C:\\Users\\nsdjs\\AppData\\Roaming', 'CC': 'clang', 'CHOCOLATEYINSTALL': 'C:\\ProgramData\\chocolatey', 'CHOCOLATEYLASTPATHUPDATE': '132665810047181697', 'CHOCOLATEYTOOLSLOCATION': 'C:\\tools', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'COMPUTERNAME': 'LAPTOP-EMBTSD2M', 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe', 'DRIVERDATA': 'C:\\Windows\\System32\\Drivers\\DriverData', 'EDITOR': 'nvim', 'FNM_ARCH': 'x64', 'FNM_DIR': 'C:\\Users\\nsdjs\\.fnm', 'FNM_LOGLEVEL': 'info', 'FNM_MULTISHELL_PATH': 'C:\\Users\\nsdjs\\AppData\\Local\\Temp\\fnm_multishells\\21456_1624074310240', 'FNM_NODE_DIST_MIRROR': 'https://nodejs.org/dist', 'FZF_DEFAULT_COMMAND': 'rg --files', 'GOPATH': 'C:\\Users\\nsdjs\\go', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\\Users\\nsdjs', 'INTEL_DEV_REDIST': 'C:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\', 'JAVA_HOME': 'C:\\Program Files\\OpenJDK\\openjdk-8u292-b10', 'LOCALAPPDATA': 'C:\\Users\\nsdjs\\AppData\\Local', 'LOGONSERVER': '\\\\LAPTOP-EMBTSD2M', 'MIC_LD_LIBRARY_PATH': 'C:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\compiler\\lib\\mic', 'NUMBER_OF_PROCESSORS': '8', 'ONEDRIVE': 'C:\\Users\\nsdjs\\OneDrive - NSW Department of Education', 'ONEDRIVECOMMERCIAL': 'C:\\Users\\nsdjs\\OneDrive - NSW Department of Education', 'ONEDRIVECONSUMER': 'C:\\Users\\nsdjs\\OneDrive', 'OPENCV_DIR': 'C:\\tools\\opencv\\build\\', 'OS': 'Windows_NT', 'PATH': 'C:\\Users\\nsdjs\\AppData\\Local\\Temp\\fnm_multishells\\21456_1624074310240;C:\\Program Files\\PowerShell\\7;C:\\Python39\\Scripts\\;C:\\Python39\\;C:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;C:\\ProgramData\\Oracle\\Java\\javapath;C:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\redist\\intel64\\compiler;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\;C:\\Program Files\\Microsoft SQL Server\\120\\Tools\\Binn\\;C:\\src\\flutter\\bin;C:\\Users\\nsdjs\\platform-tools;C:\\Program Files (x86)\\GnuWin32\\bin;C:\\Program Files\\dotnet\\;C:\\src\\flutter\\bin\\cache\\dart-sdk\\bin;C:\\bin;C:\\Program Files\\Java\\jdk1.8.0_271\\bin;C:\\bin\\libwebp-1.1.0-windows-x64\\bin;C:\\ProgramData\\chocolatey\\bin;C:\\Program Files\\Docker\\Docker\\resources\\bin;C:\\ProgramData\\DockerDesktop\\version-bin;C:\\Program Files\\LLVM\\bin;C:\\Program Files\\PowerShell\\7\\;C:\\tools\\opencv\\build\\\\bin;C:\\bin\\lua-language-server\\bin\\Windows;C:\\bin\\danser-go;C:\\Program Files\\PuTTY\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\OpenJDK\\openjdk-8u292-b10\\bin;C:\\Program Files\\Git\\cmd;C:\\Program Files\\Go\\bin;C:\\Program Files (x86)\\Gpg4win\\..\\GnuPG\\bin;C:\\Users\\nsdjs\\scoop\\shims;C:\\Users\\nsdjs\\.windows-build-tools\\python27\\;C:\\Users\\nsdjs\\.cargo\\bin;C:\\Users\\nsdjs\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\nsdjs\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\nsdjs\\.dotnet\\tools;C:\\Program Files (x86)\\GitHub CLI\\;C:\\Users\\nsdjs\\AppData\\Local\\Android\\Sdk\\platform-tools;C:\\Users\\nsdjs\\go\\bin;C:\\tools\\neovim\\Neovim\\bin;C:\\Users\\nsdjs\\AppData\\Local\\Yarn\\bin;C:\\Users\\nsdjs\\AppData\\Local\\Android\\Sdk\\tools;C:\\Users\\nsdjs\\AppData\\Local\\Programs\\hyper\\resources\\bin;C:\\Users\\nsdjs\\Documents\\PowerShell\\Scripts;C:\\Users\\nsdjs\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\nsdjs\\AppData\\Local\\Programs\\Hyper\\resources\\bin;C:\\Users\\nsdjs\\go\\bin', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW;.CPL', 'POWERSHELL_DISTRIBUTION_CHANNEL': 'MSI:Windows 10 Home Single Language', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'PROCESSOR_IDENTIFIER': 'AMD64 Family 23 Model 24 Stepping 1, AuthenticAMD', 'PROCESSOR_LEVEL': '23', 'PROCESSOR_REVISION': '1801', 'PROGRAMDATA': 'C:\\ProgramData', 'PROGRAMFILES': 'C:\\Program Files', 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)', 'PROGRAMW6432': 'C:\\Program Files', 'PSMODULEPATH': 'C:\\Users\\nsdjs\\Documents\\PowerShell\\Modules;C:\\Program Files\\PowerShell\\Modules;c:\\program files\\powershell\\7\\Modules;C:\\Program Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules', 'PUBLIC': 'C:\\Users\\Public', 'PYTHONIOENCODING': 'utf-8', 'STARSHIP_SESSION_KEY': 'Q4FXvAPozU5rnpa9', 'STARSHIP_SHELL': 'powershell', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\\WINDOWS', 'TEMP': 'C:\\Users\\nsdjs\\AppData\\Local\\Temp', 'THEFUCK_DEBUG': 'true', 'TMP': 'C:\\Users\\nsdjs\\AppData\\Local\\Temp', 'USERDOMAIN': 'LAPTOP-EMBTSD2M', 'USERDOMAIN_ROAMINGPROFILE': 'LAPTOP-EMBTSD2M', 'USERNAME': 'nsdjs', 'USERPROFILE': 'C:\\Users\\nsdjs', 'VBOX_MSI_INSTALL_PATH': 'C:\\Program Files\\Oracle\\VirtualBox\\', 'VIRTUAL_ENV_DISABLE_PROMPT': '1', 'WINDIR': 'C:\\WINDOWS', 'WSLENV': 'WT_SESSION::WT_PROFILE_ID', 'WT_PROFILE_ID': '{574e775e-4f2a-5b96-ac1e-a2962a402336}', 'WT_SESSION': 'c1e82de6-9c5e-4409-904a-b860d166f83c', 'LC_ALL': 'C', 'LANG': 'C', 'GIT_TRACE': '1'}; is slow: False took: 0:00:00.024998
DEBUG: Importing rule: adb_unknown_command; took: 0:00:00.000998
DEBUG: Importing rule: ag_literal; took: 0:00:00.001003
DEBUG: Importing rule: apt_get; took: 0:00:00.027001
DEBUG: Importing rule: apt_get_search; took: 0:00:00.001000
DEBUG: Importing rule: apt_invalid_operation; took: 0:00:00.001999
DEBUG: Importing rule: apt_list_upgradable; took: 0:00:00.001001
DEBUG: Importing rule: apt_upgrade; took: 0:00:00.000999
DEBUG: Importing rule: aws_cli; took: 0:00:00.001000
DEBUG: Importing rule: az_cli; took: 0:00:00.001000
DEBUG: Importing rule: brew_cask_dependency; took: 0:00:00.024999
DEBUG: Importing rule: brew_install; took: 0:00:00.001004
DEBUG: Importing rule: brew_link; took: 0:00:00
DEBUG: Importing rule: brew_reinstall; took: 0:00:00.000998
DEBUG: Importing rule: brew_uninstall; took: 0:00:00.001000
DEBUG: Importing rule: brew_unknown_command; took: 0:00:00
DEBUG: Importing rule: brew_update_formula; took: 0:00:00.000998
DEBUG: Importing rule: brew_upgrade; took: 0:00:00.001004
DEBUG: Importing rule: cargo; took: 0:00:00.001002
DEBUG: Importing rule: cargo_no_command; took: 0:00:00.000997
DEBUG: Importing rule: cat_dir; took: 0:00:00.000895
DEBUG: Importing rule: cd_correction; took: 0:00:00.002998
DEBUG: Importing rule: cd_cs; took: 0:00:00.001001
DEBUG: Importing rule: cd_mkdir; took: 0:00:00.001001
DEBUG: Importing rule: cd_parent; took: 0:00:00
DEBUG: Importing rule: chmod_x; took: 0:00:00.000999
DEBUG: Importing rule: choco_install; took: 0:00:00.010988
DEBUG: Importing rule: composer_not_command; took: 0:00:00.001005
DEBUG: Importing rule: conda_mistype; took: 0:00:00.000997
DEBUG: Importing rule: cp_create_destination; took: 0:00:00.000999
DEBUG: Importing rule: cp_omitting_directory; took: 0:00:00.000999
DEBUG: Importing rule: cpp11; took: 0:00:00
DEBUG: Importing rule: dirty_untar; took: 0:00:00.004007
DEBUG: Importing rule: dirty_unzip; took: 0:00:00.002988
DEBUG: Importing rule: django_south_ghost; took: 0:00:00
DEBUG: Importing rule: django_south_merge; took: 0:00:00
DEBUG: Importing rule: dnf_no_such_command; took: 0:00:00.021999
DEBUG: Importing rule: docker_image_being_used_by_container; took: 0:00:00.001005
DEBUG: Importing rule: docker_login; took: 0:00:00.001000
DEBUG: Importing rule: docker_not_command; took: 0:00:00.017006
DEBUG: Importing rule: dry; took: 0:00:00.000990
DEBUG: Importing rule: fab_command_not_found; took: 0:00:00.000995
DEBUG: Importing rule: fix_alt_space; took: 0:00:00.000998
DEBUG: Importing rule: fix_file; took: 0:00:00.003004
DEBUG: Importing rule: gem_unknown_command; took: 0:00:00.021998
DEBUG: Importing rule: git_add; took: 0:00:00.002014
DEBUG: Importing rule: git_add_force; took: 0:00:00.001001
DEBUG: Importing rule: git_bisect_usage; took: 0:00:00.000999
DEBUG: Importing rule: git_branch_delete; took: 0:00:00.001025
DEBUG: Importing rule: git_branch_delete_checked_out; took: 0:00:00.000984
DEBUG: Importing rule: git_branch_exists; took: 0:00:00.000998
DEBUG: Importing rule: git_branch_list; took: 0:00:00.001000
DEBUG: Importing rule: git_checkout; took: 0:00:00.000998
DEBUG: Importing rule: git_clone_git_clone; took: 0:00:00.001003
DEBUG: Importing rule: git_commit_amend; took: 0:00:00.001001
DEBUG: Importing rule: git_commit_reset; took: 0:00:00
DEBUG: Importing rule: git_diff_no_index; took: 0:00:00.000999
DEBUG: Importing rule: git_diff_staged; took: 0:00:00.001000
DEBUG: Importing rule: git_fix_stash; took: 0:00:00.001009
DEBUG: Importing rule: git_flag_after_filename; took: 0:00:00.000996
DEBUG: Importing rule: git_help_aliased; took: 0:00:00.001000
DEBUG: Importing rule: git_hook_bypass; took: 0:00:00.000550
DEBUG: Importing rule: git_lfs_mistype; took: 0:00:00.000997
DEBUG: Importing rule: git_merge; took: 0:00:00.000999
DEBUG: Importing rule: git_merge_unrelated; took: 0:00:00
DEBUG: Importing rule: git_not_command; took: 0:00:00.000997
DEBUG: Importing rule: git_pull; took: 0:00:00.001000
DEBUG: Importing rule: git_pull_clone; took: 0:00:00.001000
DEBUG: Importing rule: git_pull_uncommitted_changes; took: 0:00:00.001001
DEBUG: Importing rule: git_push; took: 0:00:00.001000
DEBUG: Importing rule: git_push_different_branch_names; took: 0:00:00.001000
DEBUG: Importing rule: git_push_force; took: 0:00:00.002014
DEBUG: Importing rule: git_push_pull; took: 0:00:00.000991
DEBUG: Importing rule: git_push_without_commits; took: 0:00:00.001003
DEBUG: Importing rule: git_rebase_merge_dir; took: 0:00:00.001988
DEBUG: Importing rule: git_rebase_no_changes; took: 0:00:00.001001
DEBUG: Importing rule: git_remote_delete; took: 0:00:00.000998
DEBUG: Importing rule: git_remote_seturl_add; took: 0:00:00.001000
DEBUG: Importing rule: git_rm_local_modifications; took: 0:00:00.001000
DEBUG: Importing rule: git_rm_recursive; took: 0:00:00.001001
DEBUG: Importing rule: git_rm_staged; took: 0:00:00
DEBUG: Importing rule: git_stash; took: 0:00:00
DEBUG: Importing rule: git_stash_pop; took: 0:00:00
DEBUG: Importing rule: git_tag_force; took: 0:00:00
DEBUG: Importing rule: git_two_dashes; took: 0:00:00
DEBUG: Importing rule: go_run; took: 0:00:00.002002
DEBUG: Importing rule: go_unknown_command; took: 0:00:00.016999
DEBUG: Importing rule: gradle_no_task; took: 0:00:00.000988
DEBUG: Importing rule: gradle_wrapper; took: 0:00:00
DEBUG: Importing rule: grep_arguments_order; took: 0:00:00.000999
DEBUG: Importing rule: grep_recursive; took: 0:00:00.000998
DEBUG: Importing rule: grunt_task_not_found; took: 0:00:00.000997
DEBUG: Importing rule: gulp_not_task; took: 0:00:00.001000
DEBUG: Importing rule: has_exists_script; took: 0:00:00.001001
DEBUG: Importing rule: heroku_multiple_apps; took: 0:00:00.000999
DEBUG: Importing rule: heroku_not_command; took: 0:00:00.001000
DEBUG: Importing rule: history; took: 0:00:00.001000
DEBUG: Importing rule: hostscli; took: 0:00:00.002009
DEBUG: Importing rule: ifconfig_device_not_found; took: 0:00:00.001997
DEBUG: Importing rule: java; took: 0:00:00.000996
DEBUG: Importing rule: javac; took: 0:00:00
DEBUG: Importing rule: lein_not_task; took: 0:00:00.001002
DEBUG: Importing rule: ln_no_hard_link; took: 0:00:00.001000
DEBUG: Importing rule: ln_s_order; took: 0:00:00.001002
DEBUG: Importing rule: long_form_help; took: 0:00:00.000997
DEBUG: Importing rule: ls_all; took: 0:00:00.001002
DEBUG: Importing rule: ls_lah; took: 0:00:00.000999
DEBUG: Importing rule: man; took: 0:00:00.001000
DEBUG: Importing rule: man_no_space; took: 0:00:00.000536
DEBUG: Importing rule: mercurial; took: 0:00:00.000985
DEBUG: Importing rule: missing_space_before_subcommand; took: 0:00:00.001993
DEBUG: Importing rule: mkdir_p; took: 0:00:00.001002
DEBUG: Importing rule: mvn_no_command; took: 0:00:00.000996
DEBUG: Importing rule: mvn_unknown_lifecycle_phase; took: 0:00:00.000997
DEBUG: Importing rule: nixos_cmd_not_found; took: 0:00:00.024002
DEBUG: Importing rule: no_command; took: 0:00:00.001010
DEBUG: Importing rule: no_such_file; took: 0:00:00.001997
DEBUG: Importing rule: npm_missing_script; took: 0:00:00.004997
DEBUG: Importing rule: npm_run_script; took: 0:00:00.000999
DEBUG: Importing rule: npm_wrong_command; took: 0:00:00.000997
DEBUG: Importing rule: omnienv_no_such_command; took: 0:00:00.087001
DEBUG: Importing rule: open; took: 0:00:00.001007
DEBUG: Importing rule: pacman; took: 0:00:00.069010
DEBUG: Importing rule: pacman_invalid_option; took: 0:00:00.001011
DEBUG: Importing rule: pacman_not_found; took: 0:00:00
DEBUG: Importing rule: path_from_history; took: 0:00:00
DEBUG: Importing rule: php_s; took: 0:00:00.001028
DEBUG: Importing rule: pip_install; took: 0:00:00.000977
DEBUG: Importing rule: pip_unknown_command; took: 0:00:00.000999
DEBUG: Importing rule: port_already_in_use; took: 0:00:00.022002
DEBUG: Importing rule: prove_recursively; took: 0:00:00.001001
DEBUG: Importing rule: pyenv_no_such_command; took: 0:00:00.000995
DEBUG: Importing rule: python_command; took: 0:00:00
DEBUG: Importing rule: python_execute; took: 0:00:00.001007
DEBUG: Importing rule: python_module_error; took: 0:00:00.000998
DEBUG: Importing rule: quotation_marks; took: 0:00:00.001000
DEBUG: Importing rule: react_native_command_unrecognized; took: 0:00:00
DEBUG: Importing rule: remove_shell_prompt_literal; took: 0:00:00.000998
DEBUG: Importing rule: remove_trailing_cedilla; took: 0:00:00.001003
DEBUG: Importing rule: rm_dir; took: 0:00:00.000999
DEBUG: Importing rule: rm_root; took: 0:00:00.001000
DEBUG: Importing rule: scm_correction; took: 0:00:00.001012
DEBUG: Importing rule: sed_unterminated_s; took: 0:00:00.001993
DEBUG: Importing rule: sl_ls; took: 0:00:00.001001
DEBUG: Importing rule: ssh_known_hosts; took: 0:00:00.000992
DEBUG: Importing rule: sudo; took: 0:00:00.000999
DEBUG: Importing rule: sudo_command_from_user_path; took: 0:00:00.000995
DEBUG: Importing rule: switch_lang; took: 0:00:00.001002
DEBUG: Importing rule: systemctl; took: 0:00:00.001000
DEBUG: Importing rule: terraform_init; took: 0:00:00.001000
DEBUG: Importing rule: test.py; took: 0:00:00.001002
DEBUG: Importing rule: tmux; took: 0:00:00.001001
DEBUG: Importing rule: touch; took: 0:00:00.000996
DEBUG: Importing rule: tsuru_login; took: 0:00:00.001000
DEBUG: Importing rule: tsuru_not_command; took: 0:00:00.000999
DEBUG: Importing rule: unknown_command; took: 0:00:00.000993
DEBUG: Importing rule: unsudo; took: 0:00:00.000998
DEBUG: Importing rule: vagrant_up; took: 0:00:00.001006
DEBUG: Importing rule: whois; took: 0:00:00.001000
DEBUG: Importing rule: workon_doesnt_exists; took: 0:00:00.000995
DEBUG: Importing rule: yarn_alias; took: 0:00:00.001004
DEBUG: Importing rule: yarn_command_not_found; took: 0:00:00.001995
DEBUG: Importing rule: yarn_command_replaced; took: 0:00:00.001003
DEBUG: Importing rule: yarn_help; took: 0:00:00.001001
DEBUG: Importing rule: yum_invalid_operation; took: 0:00:00.024999
DEBUG: Trying rule: path_from_history; took: 0:00:00.001002
DEBUG: Trying rule: cd_cs; took: 0:00:00
DEBUG: Trying rule: dry; took: 0:00:00
DEBUG: Trying rule: git_hook_bypass; took: 0:00:00
DEBUG: Trying rule: git_stash_pop; took: 0:00:00
DEBUG: Trying rule: test.py; took: 0:00:00
DEBUG: Trying rule: adb_unknown_command; took: 0:00:00
DEBUG: Trying rule: ag_literal; took: 0:00:00
DEBUG: Trying rule: aws_cli; took: 0:00:00
DEBUG: Trying rule: az_cli; took: 0:00:00
DEBUG: Trying rule: brew_link; took: 0:00:00
DEBUG: Trying rule: brew_reinstall; took: 0:00:00
DEBUG: Trying rule: brew_uninstall; took: 0:00:00
DEBUG: Trying rule: brew_update_formula; took: 0:00:00
DEBUG: Trying rule: cargo; took: 0:00:00
DEBUG: Trying rule: cargo_no_command; took: 0:00:00
DEBUG: Trying rule: cat_dir; took: 0:00:00
DEBUG: Trying rule: cd_correction; took: 0:00:00
DEBUG: Trying rule: cd_mkdir; took: 0:00:00
DEBUG: Trying rule: cd_parent; took: 0:00:00
DEBUG: Trying rule: chmod_x; took: 0:00:00
DEBUG: Trying rule: choco_install; took: 0:00:00
DEBUG: Trying rule: composer_not_command; took: 0:00:00
DEBUG: Trying rule: conda_mistype; took: 0:00:00
DEBUG: Trying rule: cp_create_destination; took: 0:00:00
DEBUG: Trying rule: cp_omitting_directory; took: 0:00:00
DEBUG: Trying rule: cpp11; took: 0:00:00
DEBUG: Trying rule: dirty_untar; took: 0:00:00
DEBUG: Trying rule: dirty_unzip; took: 0:00:00
DEBUG: Trying rule: django_south_ghost; took: 0:00:00
DEBUG: Trying rule: django_south_merge; took: 0:00:00
DEBUG: Trying rule: docker_image_being_used_by_container; took: 0:00:00
DEBUG: Trying rule: docker_login; took: 0:00:00
DEBUG: Trying rule: docker_not_command; took: 0:00:00
DEBUG: Trying rule: fab_command_not_found; took: 0:00:00.000996
DEBUG: Trying rule: fix_alt_space; took: 0:00:00
DEBUG: Trying rule: fix_file; took: 0:00:00
DEBUG: Trying rule: gem_unknown_command; took: 0:00:00
DEBUG: Trying rule: git_add; took: 0:00:00
DEBUG: Trying rule: git_add_force; took: 0:00:00
DEBUG: Trying rule: git_bisect_usage; took: 0:00:00.001002
DEBUG: Trying rule: git_branch_delete; took: 0:00:00
DEBUG: Trying rule: git_branch_delete_checked_out; took: 0:00:00
DEBUG: Trying rule: git_branch_exists; took: 0:00:00.000996
DEBUG: Trying rule: git_branch_list; took: 0:00:00
DEBUG: Trying rule: git_checkout; took: 0:00:00
DEBUG: Trying rule: git_clone_git_clone; took: 0:00:00.001002
DEBUG: Trying rule: git_commit_amend; took: 0:00:00
DEBUG: Trying rule: git_commit_reset; took: 0:00:00
DEBUG: Trying rule: git_diff_no_index; took: 0:00:00
DEBUG: Trying rule: git_diff_staged; took: 0:00:00
DEBUG: Trying rule: git_fix_stash; took: 0:00:00
DEBUG: Trying rule: git_flag_after_filename; took: 0:00:00
DEBUG: Trying rule: git_help_aliased; took: 0:00:00
DEBUG: Trying rule: git_lfs_mistype; took: 0:00:00
DEBUG: Trying rule: git_merge; took: 0:00:00
DEBUG: Trying rule: git_merge_unrelated; took: 0:00:00
DEBUG: Trying rule: git_not_command; took: 0:00:00
DEBUG: Trying rule: git_pull; took: 0:00:00
DEBUG: Trying rule: git_pull_clone; took: 0:00:00
DEBUG: Trying rule: git_pull_uncommitted_changes; took: 0:00:00
DEBUG: Trying rule: git_push; took: 0:00:00
DEBUG: Trying rule: git_push_different_branch_names; took: 0:00:00
DEBUG: Trying rule: git_push_pull; took: 0:00:00
DEBUG: Trying rule: git_push_without_commits; took: 0:00:00
DEBUG: Trying rule: git_rebase_merge_dir; took: 0:00:00
DEBUG: Trying rule: git_rebase_no_changes; took: 0:00:00
DEBUG: Trying rule: git_remote_delete; took: 0:00:00
DEBUG: Trying rule: git_remote_seturl_add; took: 0:00:00.000999
DEBUG: Trying rule: git_rm_local_modifications; took: 0:00:00
DEBUG: Trying rule: git_rm_recursive; took: 0:00:00
DEBUG: Trying rule: git_rm_staged; took: 0:00:00
DEBUG: Trying rule: git_stash; took: 0:00:00
DEBUG: Trying rule: git_tag_force; took: 0:00:00
DEBUG: Trying rule: git_two_dashes; took: 0:00:00
DEBUG: Trying rule: go_run; took: 0:00:00
DEBUG: Trying rule: go_unknown_command; took: 0:00:00
DEBUG: Trying rule: gradle_no_task; took: 0:00:00
DEBUG: Trying rule: gradle_wrapper; took: 0:00:00
DEBUG: Trying rule: grep_arguments_order; took: 0:00:00
DEBUG: Trying rule: grep_recursive; took: 0:00:00
DEBUG: Trying rule: grunt_task_not_found; took: 0:00:00
DEBUG: Trying rule: gulp_not_task; took: 0:00:00
DEBUG: Trying rule: has_exists_script; took: 0:00:00
DEBUG: Trying rule: heroku_multiple_apps; took: 0:00:00
DEBUG: Trying rule: heroku_not_command; took: 0:00:00.001002
DEBUG: Trying rule: hostscli; took: 0:00:00
DEBUG: Trying rule: ifconfig_device_not_found; took: 0:00:00
DEBUG: Trying rule: java; took: 0:00:00
DEBUG: Trying rule: javac; took: 0:00:00
DEBUG: Trying rule: lein_not_task; took: 0:00:00
DEBUG: Trying rule: ln_no_hard_link; took: 0:00:00
DEBUG: Trying rule: ln_s_order; took: 0:00:00
DEBUG: Trying rule: ls_all; took: 0:00:00
DEBUG: Trying rule: ls_lah; took: 0:00:00
DEBUG: Trying rule: man; took: 0:00:00
DEBUG: Trying rule: mercurial; took: 0:00:00
DEBUG: Trying rule: mkdir_p; took: 0:00:00.000999
DEBUG: Trying rule: mvn_no_command; took: 0:00:00
DEBUG: Trying rule: mvn_unknown_lifecycle_phase; took: 0:00:00
DEBUG: Trying rule: no_such_file; took: 0:00:00.000999
DEBUG: Trying rule: npm_missing_script; took: 0:00:00
DEBUG: Trying rule: npm_run_script; took: 0:00:00
DEBUG: Trying rule: npm_wrong_command; took: 0:00:00
DEBUG: Trying rule: open; took: 0:00:00
DEBUG: Trying rule: pacman_invalid_option; took: 0:00:00
DEBUG: Trying rule: php_s; took: 0:00:00
DEBUG: Trying rule: pip_install; took: 0:00:00
DEBUG: Trying rule: pip_unknown_command; took: 0:00:00
DEBUG: Trying rule: prove_recursively; took: 0:00:00.001019
DEBUG: Trying rule: pyenv_no_such_command; took: 0:00:00
DEBUG: Trying rule: python_command; took: 0:00:00
DEBUG: Trying rule: python_execute; took: 0:00:00
DEBUG: Trying rule: python_module_error; took: 0:00:00
DEBUG: Trying rule: quotation_marks; took: 0:00:00
DEBUG: Trying rule: react_native_command_unrecognized; took: 0:00:00
DEBUG: Trying rule: remove_shell_prompt_literal; took: 0:00:00
DEBUG: Trying rule: remove_trailing_cedilla; took: 0:00:00
DEBUG: Trying rule: rm_dir; took: 0:00:00
DEBUG: Trying rule: scm_correction; took: 0:00:00
DEBUG: Trying rule: sed_unterminated_s; took: 0:00:00
DEBUG: Trying rule: sl_ls; took: 0:00:00
DEBUG: Trying rule: ssh_known_hosts; took: 0:00:00
DEBUG: Trying rule: sudo; took: 0:00:00
DEBUG: Trying rule: sudo_command_from_user_path; took: 0:00:00
DEBUG: Trying rule: switch_lang; took: 0:00:00
DEBUG: Trying rule: systemctl; took: 0:00:00
DEBUG: Trying rule: terraform_init; took: 0:00:00
DEBUG: Trying rule: tmux; took: 0:00:00
DEBUG: Trying rule: touch; took: 0:00:00
DEBUG: Trying rule: tsuru_login; took: 0:00:00
DEBUG: Trying rule: tsuru_not_command; took: 0:00:00
DEBUG: Trying rule: unknown_command; took: 0:00:00
DEBUG: Trying rule: unsudo; took: 0:00:00
DEBUG: Trying rule: vagrant_up; took: 0:00:00
DEBUG: Trying rule: whois; took: 0:00:00
DEBUG: Trying rule: workon_doesnt_exists; took: 0:00:00
DEBUG: Trying rule: yarn_alias; took: 0:00:00
DEBUG: Trying rule: yarn_command_not_found; took: 0:00:00
DEBUG: Trying rule: yarn_command_replaced; took: 0:00:00
DEBUG: Trying rule: yarn_help; took: 0:00:00
DEBUG: Trying rule: man_no_space; took: 0:00:00
DEBUG: Trying rule: no_command; took: 0:00:01.250587
PING.EXE [enter/↑/↓/ctrl+c]
Aborted
DEBUG: Total took: 0:00:03.401632

If the bug only appears with a specific application, the output of that application and its version:

Nope - this happens with any executables that have uppercase names.

Anything else you think is relevant:

This is probably an issue with difflib.get_close_matches() as its case-sensitive. Also sorry for the large debug section.
scorphus commented 3 years ago

That would be an nice improvement.

  1. identify if the underlying filesystem is case-insensitive
  2. If it is, activate a flag to set everything to lower case prior to running the rules
TarunRKaushik commented 2 years ago

has this been resolved? If not, I wanted to try tackling this. Any help would be appreciated.

scorphus commented 2 years ago

Go for it, @TarunRKaushik! 🚀

TarunRKaushik commented 2 years ago

hey @scorphus, I was having some trouble running the app locally(for debugging purposes), when I try to run main.py, I get this:

Traceback (most recent call last):
  File "G:\open_source\thefuck\thefuck\entrypoints\main.py", line 2, in <module>
    from ..system import init_output
ImportError: attempted relative import with no known parent package

Should I be changing the working directory? Or am I missing something here?

scorphus commented 2 years ago

Probably the best way to run it is by calling thefuck from the terminal. e.g. thefuck PINGG or thefuck "git brnch".

RVALLER commented 2 years ago

Hi university capstone project -- our group is trying our hand at this issue, too. Is there any good starting point as to adding the necessary functionality/fix for this? My initial assumption would be somewhere in conf or correcter.py. But I noticed that difflib has been mentioned here, too.

scorphus commented 2 years ago

One point of interest would be utils.get_all_executables(): https://github.com/nvbn/thefuck/blob/d8ddf5a2be9d52ec4bc8c11e79fcc7b3c390b669/thefuck/utils.py#L112-L133

as it is used in the no_command rule: https://github.com/nvbn/thefuck/blob/d8ddf5a2be9d52ec4bc8c11e79fcc7b3c390b669/thefuck/rules/no_command.py#L1-L42

I gave this issue a bit more thought. Turning executable names to lower case might work for case-insensitive file systems, but it may be quite tricky to ensure that all executables lie on such file system and not elsewhere. Even trickier to not convert to lower case those that lie on case-sensitive file systems. So it looks like this issue could hardly be effectively solved this way.

Another possible solution could be a new no_command_i rule that would try to find matches case-insensitively. It could borrow/adapt the ideas discussed in this SO thread: https://stackoverflow.com/questions/11384714/ignore-case-with-difflib-get-close-matches

There are a few more caveats to it, but they can be explored once the new rule gets some initial shape.

As to difflib, this BPO has some interesting discussions: https://bugs.python.org/issue39891. It also has a conclusion. So, maybe a new package? Check existing ones in PyPI: https://pypi.org/search/?q=difflib

RVALLER commented 2 years ago

I see, thank you for the insight. One of those threads eventually led to something about get-close_matches_ignorecase()