nvbn / thefuck

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

Support for Windows CMD #1425

Closed BenjaminKobjolke closed 9 months ago

BenjaminKobjolke commented 10 months ago

When I run "fuck" on windows cmd I get "Seems like fuck alias isn't configured!"

But the help does not show how to configure thefuck for windows cmd, only for powershell.

The latest commit shows that there is support for windows cmd https://github.com/nvbn/thefuck/commit/3cd187a3bb47351890ac7308464e1a2780507220

But I guess since the latest release is from January and the commit is from July a version that supports windows cmd wasn't released yet.


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

thefuck 3.32 for windows

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

Windows 11 CMD

How to reproduce the bug:

simply run fuck

BinaryBitBytes commented 9 months ago

Terminal (CMD) vs. Shell (Powershell) vs BASH (GitBash)


Addressing Your Prompt

When I run "fuck" on windows cmd I get "Seems like fuck alias isn't configured!"
But the help does not show how to configure thefuck for windows cmd, only for powershell.

Terminal (CMD)

  • The terminal does not store the session in memory globally without making environment variables where as the shell does store the session data as objects globally. The terminal (CMD) only outputs data in characters.. Therefore the terminal cant store the instance of the commands result after execution.

Shell (PowerShell)

  • The Shell (PowerShell) the state in memory will be stored throughout the session as objects instead of characters; until the session is closed.

BASH (Bourne-Again SHell) [GitBash]

  • So also a concept that should be considered is BASH. Being as a shell can store memory throughout the session BASH (Bourne-Again SHell) which is similar to treating data as text but instead of plain text it uses structures.

I am familiar with these concepts but I just wanted to address your Git Issue with some support. Hopefully it helps. Also Below I will provide a resource i used to fact check my understanding of explaining to your the reason why you could prompt the Git Issue.

References

What is __ ?

| 1. Terminal | 2. CMD | 3. Shell | 4. PowerShell | 5. Bash |

Comparison Chart

BenjaminKobjolke commented 9 months ago

Sorry but I am not sure how your posts helps my issue.

CryoTheRenegade commented 9 months ago

I'll tldr it for ya, CMD is incapable of running thefuck because it doesn't have features required to allow thefuck to add a config. I.E the Powershell profile that allows the fuck to be setup everytime the shell is spawned. CMD is a legacy terminal that allows access like older DOS terminals. For stuff like thefuck and other shell extensions (I.E Starship or oh-my-pwsh) please use Windows PowerShell or PowerShell Core.

BenjaminKobjolke commented 9 months ago

Thanks for the info!