The Fuck ist eine großartige App, die von einem @liamosaur-Tweet inspiriert wurde und Fehler in früheren Konsolenbefehlen korrigiert.
Ist The Fuck zu langsam? Probieren Sie den experimentellen Sofortmodus aus!
Weitere Beispiele:
➜ apt-get install vim
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root ?
➜ fuck
sudo apt-get install vim [enter/↑/↓/ctrl+c]
[sudo] password for nvbn:
Reading package lists... Done
...
➜ git push
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin master
➜ fuck
git push --set-upstream origin master [enter/↑/↓/ctrl+c]
Counting objects: 9, done.
...
➜ puthon
No command ' puthon ' found, did you mean:
Command ' python ' from package ' python-minimal ' (main)
Command ' python ' from package ' python3 ' (main)
zsh: command not found: puthon
➜ fuck
python [enter/↑/↓/ctrl+c]
Python 3.4.2 (default, Oct 8 2014, 13:08:17)
...
➜ git brnch
git: ' brnch ' is not a git command. See ' git --help ' .
Did you mean this ?
branch
➜ fuck
git branch [enter/↑/↓/ctrl+c]
* master
➜ lein rpl
' rpl ' is not a task. See ' lein help ' .
Did you mean this ?
repl
➜ fuck
lein repl [enter/↑/↓/ctrl+c]
nREPL server started on port 54848 on host 127.0.0.1 - nrepl://127.0.0.1:54848
REPL-y 0.3.1
...
Wenn Sie keine Angst davor haben, korrigierte Befehle blind auszuführen, kann die Einstellungsoption require_confirmation
deaktiviert werden:
➜ apt-get install vim
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root ?
➜ fuck
sudo apt-get install vim
[sudo] password for nvbn:
Reading package lists... Done
...
Unter macOS oder Linux können Sie The Fuck über Homebrew installieren:
brew install thefuck
Installieren Sie The Fuck unter Ubuntu/Mint mit den folgenden Befehlen:
sudo apt update
sudo apt install python3-dev python3-pip python3-setuptools
pip3 install thefuck --user
Installieren Sie The Fuck unter FreeBSD mit den folgenden Befehlen:
pkg install thefuck
Installieren Sie The Fuck unter ChromeOS mit Chromebrew und dem folgenden Befehl:
crew install thefuck
Installieren Sie The Fuck auf Arch-basierten Systemen mit dem folgenden Befehl:
sudo pacman -S thefuck
Installieren Sie The Fuck auf anderen Systemen mit pip
:
pip install thefuck
Alternativ können Sie einen Betriebssystem-Paketmanager (OS X, Ubuntu, Arch) verwenden.
# Es wird empfohlen, diesen Befehl in Ihr .bash_profile
, .bashrc
, .zshrc
oder ein anderes Startskript einzufügen:
eval $( thefuck --alias )
# You can use whatever you want as an alias, like for Mondays:
eval $( thefuck --alias FUCK )
Oder in Ihrer Shell-Konfiguration (Bash, Zsh, Fish, Powershell, tcsh).
Änderungen sind nur in einer neuen Shell-Sitzung verfügbar. Um Änderungen sofort verfügbar zu machen, führen Sie source ~/.bashrc
(oder Ihre Shell-Konfigurationsdatei wie .zshrc
) aus.
Um feste Befehle ohne Bestätigung auszuführen, verwenden Sie die Option --yeah
(oder einfach -y
kurz oder --hard
, wenn Sie besonders frustriert sind):
fuck --yeah
Um Befehle rekursiv zu korrigieren, bis sie erfolgreich sind, verwenden Sie die Option -r
:
fuck -r
pip3 install thefuck --upgrade
Hinweis: Die Alias-Funktionalität wurde in Version 1.34 von The Fuck geändert
Um The Fuck zu entfernen, kehren Sie den Installationsvorgang um:
The Fuck versucht, den vorherigen Befehl mit einer Regel abzugleichen. Wenn eine Übereinstimmung gefunden wird, wird ein neuer Befehl mit der übereinstimmenden Regel erstellt und ausgeführt. Die folgenden Regeln sind standardmäßig aktiviert:
adb_unknown_command
– behebt falsch geschriebene Befehle wie adb logcta
;ag_literal
– fügt -Q
zu ag
hinzu, wenn dies vorgeschlagen wird;aws_cli
– behebt falsch geschriebene Befehle wie aws dynamdb scan
;az_cli
– behebt falsch geschriebene Befehle wie az providers
;cargo
– führt cargo build
anstelle von cargo
aus;cargo_no_command
– behebt falsche Befehle wie cargo buid
;cat_dir
– ersetzt cat
durch ls
wenn Sie versuchen, ein Verzeichnis zu cat
;cd_correction
– prüft die Rechtschreibung und korrigiert fehlgeschlagene CD-Befehle;cd_cs
– ändert cs
in cd
;cd_mkdir
– erstellt Verzeichnisse, bevor cd in sie kopiert wird;cd_parent
– ändert cd..
in cd ..
;chmod_x
– fügt Ausführungsbit hinzu;choco_install
– fügt allgemeine Suffixe für Schokoladenpakete hinzu;composer_not_command
– korrigiert den Composer-Befehlsnamen;conda_mistype
– behebt Conda-Befehle;cp_create_destination
– erstellt ein neues Verzeichnis, wenn Sie versuchen, mit cp
oder mv
in ein nicht vorhandenes Verzeichnis zu wechselncp_omitting_directory
– fügt -a
hinzu, wenn Sie das Verzeichnis cp
;cpp11
– fügt fehlendes -std=c++11
zu g++
oder clang++
hinzu;dirty_untar
– behebt den Befehl tar x
der im aktuellen Verzeichnis enttarnt wurde;dirty_unzip
– behebt unzip
Befehl, der im aktuellen Verzeichnis entpackt wurde;django_south_ghost
– fügt --delete-ghost-migrations
zu „fehlgeschlagen, weil Ghosts Django South Migration“ hinzu;django_south_merge
– fügt --merge
zur inkonsistenten Django-South-Migration hinzu;docker_login
– führt einen docker login
aus und wiederholt den vorherigen Befehl;docker_not_command
– behebt falsche Docker-Befehle wie docker tags
;docker_image_being_used_by_container
– entfernt den Container, der das Bild verwendet, bevor das Bild entfernt wird;dry
– behebt Wiederholungen wie git git push
;fab_command_not_found
– behebt falsch geschriebene Fabric-Befehle;fix_alt_space
– ersetzt Alt+Leertaste durch Leerzeichen;fix_file
– öffnet eine Datei mit einem Fehler in Ihrem $EDITOR
;gem_unknown_command
– behebt falsche gem
Befehle;git_add
– behebt „pathspec ‚foo‘ stimmte mit keiner Datei(en) überein, die git bekannt ist.“ ;git_add_force
– fügt --force
zu git add <pathspec>...
hinzu, wenn Pfade .gitignore sind;git_bisect_usage
– behebt git bisect strt
, git bisect goood
, git bisect rset
usw. beim Halbieren;git_branch_delete
– ändert git branch -d
in git branch -D
;git_branch_delete_checked_out
– ändert git branch -d
in git checkout master && git branch -D
wenn versucht wird, einen ausgecheckten Zweig zu löschen;git_branch_exists
– bietet git branch -d foo
, git branch -D foo
oder git checkout foo
an, wenn ein bereits vorhandener Zweig erstellt wird;git_branch_list
– fängt git branch list
anstelle des git branch
ein und entfernt den erstellten Branch;git_branch_0flag
– behebt Befehle wie git branch 0v
und git branch 0r
, die den erstellten Zweig entfernen;git_checkout
– korrigiert den Zweignamen oder erstellt einen neuen Zweig;git_clone_git_clone
– ersetzt git clone git clone ...
durch git clone ...
git_clone_missing
– fügt git clone
zu URLs hinzu, die scheinbar auf ein Git-Repository verweisen.git_commit_add
– bietet git commit -a ...
oder git commit -p ...
nach dem vorherigen Commit an, wenn es fehlgeschlagen ist, weil nichts bereitgestellt wurde;git_commit_amend
– bietet git commit --amend
nach dem vorherigen Commit an;git_commit_reset
– bietet git reset HEAD~
nach vorherigem Commit an;git_diff_no_index
– fügt --no-index
zum vorherigen git diff
für nicht verfolgte Dateien hinzu;git_diff_staged
– fügt --staged
zum vorherigen git diff
mit unerwarteter Ausgabe hinzu;git_fix_stash
– behebt git stash
Befehle (falsch geschriebener Unterbefehl und fehlendes save
);git_flag_after_filename
– behebt fatal: bad flag '...' after filename
git_help_aliased
– behebt, dass git help <alias>
-Befehle durch den aliased-Befehl ersetzt werden;git_hook_bypass
– fügt das Flag --no-verify
vor dem Befehl git am
, git commit
oder git push
hinzu;git_lfs_mistype
– behebt falsch eingegebene git lfs <command>
-Befehle;git_main_master
– behebt den falschen Zweignamen zwischen main
und master
git_merge
– fügt Remote zu Zweignamen hinzu;git_merge_unrelated
– fügt bei Bedarf --allow-unrelated-histories
hinzugit_not_command
– behebt falsche Git-Befehle wie git brnch
;git_pull
– legt den Upstream fest, bevor der vorherige git pull
ausgeführt wird;git_pull_clone
– Klone statt Pull, wenn das Repo nicht existiert;git_pull_uncommitted_changes
– speichert Änderungen vor dem Abrufen und stellt sie anschließend ein;git_push
– fügt --set-upstream origin $branch
zum vorherigen fehlgeschlagenen git push
hinzu;git_push_different_branch_names
– behebt Push-Vorgänge, wenn der Name des lokalen Zweigs nicht mit dem Namen des entfernten Zweigs übereinstimmt;git_push_pull
– führt git pull
aus, wenn push
abgelehnt wurde;git_push_without_commits
– erstellt ein anfängliches Commit, wenn Sie es vergessen und nur git add .
, beim Einrichten eines neuen Projekts;git_rebase_no_changes
– führt git rebase --skip
anstelle von git rebase --continue
aus, wenn es keine Änderungen gibt;git_remote_delete
– ersetzt git remote delete remote_name
durch git remote remove remote_name
;git_rm_local_modifications
– fügt -f
oder --cached
hinzu, wenn Sie versuchen, eine lokal geänderte Datei zu rm
;git_rm_recursive
– fügt -r
hinzu, wenn Sie versuchen, ein Verzeichnis zu rm
;git_rm_staged
– fügt -f
oder --cached
hinzu, wenn Sie versuchen, eine Datei mit bereitgestellten Änderungen zu rm
git_rebase_merge_dir
– bietet git rebase (--continue | --abort | --skip)
oder das Entfernen des .git/rebase-merge
Verzeichnisses, wenn ein Rebase ausgeführt wird;git_remote_seturl_add
– führt git remote add
aus, wenn git remote set_url
auf einer nicht vorhandenen Fernbedienung vorhanden ist;git_stash
– speichert Ihre lokalen Änderungen vor dem Rebasing oder dem Zweigwechsel;git_stash_pop
– fügt Ihre lokalen Änderungen hinzu, bevor Stash gelöscht wird, und setzt es dann zurück;git_tag_force
– fügt --force
zum git tag <tagname>
hinzu, wenn das Tag bereits existiert;git_two_dashes
– fügt Befehlen wie git commit -amend
oder git rebase -continue
einen fehlenden Bindestrich hinzu;go_run
– fügt beim Kompilieren/Ausführen von Go-Programmen die Erweiterung .go
hinzu;go_unknown_command
– behebt falsche go
-Befehle, zum Beispiel go bulid
;gradle_no_task
– behebt nicht gefundene oder mehrdeutige gradle
Aufgaben;gradle_wrapper
– ersetzt gradle
durch ./gradlew
;grep_arguments_order
– korrigiert die Reihenfolge grep
-Argumente für Situationen wie grep -lir . test
;grep_recursive
– fügt -r
hinzu, wenn Sie versuchen, das Verzeichnis zu grep
;grunt_task_not_found
– behebt falsch geschriebene grunt
-Befehle;gulp_not_task
– behebt falsch geschriebene gulp
;has_exists_script
– stellt ./
voran, wenn script/binary existiert;heroku_multiple_apps
– fügt --app <app>
zu heroku
-Befehlen wie heroku pg
hinzu;heroku_not_command
– behebt falsche heroku
-Befehle wie heroku log
;history
– versucht, den Befehl durch den ähnlichsten Befehl aus dem Verlauf zu ersetzen;hostscli
– versucht, die Verwendung hostscli
zu beheben;ifconfig_device_not_found
– behebt falsche Gerätenamen wie wlan0
bis wlp2s0
;java
– entfernt die Erweiterung .java
, wenn Java-Programme ausgeführt werden;javac
– fügt fehlende .java
beim Kompilieren von Java-Dateien hinzu;lein_not_task
– behebt falsche lein
-Aufgaben wie lein rpl
;long_form_help
– ändert -h
in --help
, wenn die Kurzformversion nicht unterstützt wirdln_no_hard_link
– fängt die Erstellung von Hardlinks in Verzeichnissen ein und schlägt symbolische Links vor;ln_s_order
– korrigiert die Reihenfolge ln -s
Argumente;ls_all
– fügt -A
zu ls
, wenn die Ausgabe leer ist;ls_lah
– fügt -lah
zu ls
;man
– ändert den Handbuchabschnitt;man_no_space
– behebt man-Befehle ohne Leerzeichen, zum Beispiel mandiff
;mercurial
– behebt falsche hg
Befehle;missing_space_before_subcommand
– behebt Befehle mit fehlendem Leerzeichen wie npminstall
;mkdir_p
– fügt -p
hinzu, wenn Sie versuchen, ein Verzeichnis ohne übergeordnetes Verzeichnis zu erstellen;mvn_no_command
– fügt clean package
zu mvn
hinzu;mvn_unknown_lifecycle_phase
– behebt falsch geschriebene Lebenszyklusphasen mit mvn
;npm_missing_script
– behebt den Namen des benutzerdefinierten npm
-Skripts in npm run-script <script>
;npm_run_script
– fügt fehlendes run-script
für benutzerdefinierte npm
-Skripte hinzu;npm_wrong_command
– behebt falsche npm-Befehle wie npm urgrade
;no_command
– behebt falsche Konsolenbefehle, zum Beispiel vom/vim
;no_such_file
– erstellt fehlende Verzeichnisse mit den Befehlen mv
und cp
;omnienv_no_such_command
– behebt falsche Befehle für goenv
, nodenv
, pyenv
und rbenv
(z. B.: pyenv isntall
oder goenv list
);open
– stellt entweder http://
der an open
übergebenen Adresse voran oder erstellt eine neue Datei oder ein neues Verzeichnis und übergibt sie an open
;pip_install
– behebt Berechtigungsprobleme mit pip install
, indem bei Bedarf --user
hinzugefügt oder sudo
vorangestellt wird;pip_unknown_command
– behebt falsche pip
-Befehle, zum Beispiel pip instatl/pip install
;php_s
– ersetzt -s
durch -S
, wenn versucht wird, einen lokalen PHP-Server auszuführen;port_already_in_use
– beendet den Prozess, der den Port gebunden hat;prove_recursively
– fügt -r
hinzu, wenn es mit einem Verzeichnis aufgerufen wird;python_command
– stellt python
voran, wenn Sie versuchen, ein nicht ausführbares/ohne ./
Python-Skript auszuführen;python_execute
– fügt fehlende .py
hinzu, wenn Python-Dateien ausgeführt werden;python_module_error
– behebt ModuleNotFoundError, indem versucht wird, dieses Modul pip install
;quotation_marks
– behebt die ungleichmäßige Verwendung von '
und "
, wenn Argumente enthalten sind';path_from_history
– ersetzt den nicht gefundenen Pfad durch einen ähnlichen absoluten Pfad aus dem Verlauf;rails_migrations_pending
– führt ausstehende Migrationen aus;react_native_command_unrecognized
– behebt nicht erkannte react-native
Befehle;remove_shell_prompt_literal
– entfernt das führende Shell-Prompt-Symbol $
, häufig beim Kopieren von Befehlen aus Dokumentationen;remove_trailing_cedilla
– entfernt nachgestellte Cedillas ç
, ein häufiger Tippfehler bei europäischen Tastaturlayouts;rm_dir
– fügt -rf
hinzu, wenn Sie versuchen, ein Verzeichnis zu entfernen;scm_correction
– korrigiert falsches SCM wie hg log
zu git log
;sed_unterminated_s
– fügt fehlendes „/“ zu sed
s
Befehlen hinzu;sl_ls
– ändert sl
zu ls
;ssh_known_hosts
– entfernt den Host bei einer Warnung known_hosts
;sudo
– stellt sudo
dem vorherigen Befehl voran, wenn dieser aufgrund von Berechtigungen fehlgeschlagen ist;sudo_command_from_user_path
– führt Befehle von Benutzern $PATH
mit sudo
aus;switch_lang
– schaltet den Befehl von Ihrem lokalen Layout auf en um;systemctl
– ordnet Parameter von verwirrendem systemctl
korrekt an;terraform_init.py
– führt terraform init
vor dem Planen oder Anwenden aus;terraform_no_command.py
– behebt nicht erkannte terraform
-Befehle;test.py
– führt pytest
anstelle von test.py
aus;touch
– erstellt fehlende Verzeichnisse vor dem „Touching“;tsuru_login
– führt tsuru login
aus, wenn keine Authentifizierung erfolgt oder die Sitzung abgelaufen ist;tsuru_not_command
– behebt falsche tsuru
-Befehle wie tsuru shell
;tmux
– behebt tmux
-Befehle;unknown_command
– behebt „unbekannten Befehl“ im Hadoop-HDFS-Stil, fügt beispielsweise fehlendes „-“ zum Befehl auf hdfs dfs ls
hinzu;unsudo
– entfernt sudo
aus dem vorherigen Befehl, wenn ein Prozess die Ausführung mit Superuser-Rechten verweigert.vagrant_up
– startet die Vagrant-Instanz;whois
– behebt whois
-Befehl;workon_doesnt_exists
– behebt virtualenvwrapper
-Env-Namen. Das Betriebssystem schlägt vor, eine neue Datei zu erstellen.wrong_hyphen_before_subcommand
– entfernt einen falsch platzierten Bindestrich ( apt-install
-> apt install
, git-log
-> git log
usw.)yarn_alias
– behebt Alias- yarn
wie yarn ls
;yarn_command_not_found
– behebt falsch geschriebene yarn
-Befehle;yarn_command_replaced
– behebt ersetzte yarn
;yarn_help
– erleichtert das Öffnen der yarn
; Die folgenden Regeln sind standardmäßig nur auf bestimmten Plattformen aktiviert:
apt_get
– installiert die App von apt, wenn sie nicht installiert ist (erfordert python-commandnotfound
/ python3-commandnotfound
);apt_get_search
– ändert den Versuch, mit apt-get
zu suchen, mit der Suche mit apt-cache
;apt_invalid_operation
– behebt ungültige apt
und apt-get
-Aufrufe, z. B. apt-get isntall vim
;apt_list_upgradable
– hilft Ihnen, apt list --upgradable
nach dem apt update
auszuführen;apt_upgrade
– hilft Ihnen, apt upgrade
nach apt list --upgradable
;brew_cask_dependency
– installiert Cask-Abhängigkeiten;brew_install
– korrigiert den Formelnamen für brew install
;brew_reinstall
– verwandelt brew install <formula>
in brew reinstall <formula>
;brew_link
– fügt --overwrite --dry-run
hinzu, wenn die Verknüpfung fehlschlägt;brew_uninstall
– fügt --force
zur brew uninstall
hinzu, wenn mehrere Versionen installiert wurden;brew_unknown_command
– behebt falsche Brew-Befehle, zum Beispiel brew docto/brew doctor
;brew_update_formula
– verwandelt brew update <formula>
in brew upgrade <formula>
;dnf_no_such_command
– behebt falsch eingegebene DNF-Befehle;nixos_cmd_not_found
– installiert Apps auf NixOS;pacman
– installiert die App mit pacman
wenn sie nicht installiert ist (verwendet yay
, pikaur
oder yaourt
falls verfügbar);pacman_invalid_option
– ersetzt kleingeschriebene pacman
-Optionen durch Großbuchstaben.pacman_not_found
– korrigiert den Paketnamen mit pacman
, yay
, pikaur
oder yaourt
.yum_invalid_operation
– behebt ungültige yum
Aufrufe, z. B. yum isntall vim
“;Die folgenden Befehle sind im Lieferumfang von The Fuck enthalten, aber standardmäßig nicht aktiviert:
git_push_force
– fügt --force-with-lease
zu einem git push
hinzu (kann mit git_push_pull
in Konflikt geraten);rm_root
– fügt --no-preserve-root
zum Befehl rm -rf /
hinzu. Um Ihre eigene Regel hinzuzufügen, erstellen Sie eine Datei mit dem Namen your-rule-name.py
in ~/.config/thefuck/rules
. Die Regeldatei muss zwei Funktionen enthalten:
match ( command : Command ) - > bool
get_new_command ( command : Command ) - > str | list [ str ]
Darüber hinaus können Regeln optionale Funktionen enthalten:
side_effect ( old_command : Command , fixed_command : str ) - > None
Regeln können auch die optionalen Variablen enabled_by_default
, requires_output
und priority
enthalten.
Command
verfügt über drei Attribute: script
, output
und script_parts
. Ihre Regel sollte Command
nicht ändern.
Regel-API in 3.0 geändert: Um auf die Einstellungen einer Regel zuzugreifen, importieren Sie sie mit from thefuck.conf import settings
settings
ist ein spezielles Objekt, das aus ~/.config/thefuck/settings.py
und Werten aus env zusammengestellt wird (mehr dazu weiter unten).
Eine einfache Beispielregel zum Ausführen eines Skripts mit sudo
:
def match ( command ):
return ( 'permission denied' in command . output . lower ()
or 'EACCES' in command . output )
def get_new_command ( command ):
return 'sudo {}' . format ( command . script )
# Optional:
enabled_by_default = True
def side_effect ( command , fixed_command ):
subprocess . call ( 'chmod 777 .' , shell = True )
priority = 1000 # Lower first, default is 1000
requires_output = True
Weitere Beispiele für Regeln, Hilfsfunktionen für Regeln, App-/Betriebssystem-spezifische Helfer.
Mehrere The Fuck -Parameter können in der Datei $XDG_CONFIG_HOME/thefuck/settings.py
geändert werden ( $XDG_CONFIG_HOME
ist standardmäßig ~/.config
):
rules
– Liste der aktivierten Regeln, standardmäßig thefuck.const.DEFAULT_RULES
;exclude_rules
– Liste der deaktivierten Regeln, standardmäßig []
;require_confirmation
– erfordert eine Bestätigung vor der Ausführung eines neuen Befehls, standardmäßig True
;wait_command
– die maximale Zeit in Sekunden zum Abrufen der vorherigen Befehlsausgabe;no_colors
– farbige Ausgabe deaktivieren;priority
– Diktat mit Regelprioritäten, Regel mit niedrigerer priority
wird zuerst abgeglichen;debug
– aktiviert die Debug-Ausgabe, standardmäßig False
;history_limit
– der numerische Wert, der angibt, wie viele Verlaufsbefehle gescannt werden, z. B. 2000
;alter_history
– festen Befehl in den Verlauf verschieben, standardmäßig True
;wait_slow_command
– maximale Zeit in Sekunden zum Abrufen der vorherigen Befehlsausgabe, wenn diese in der slow_commands
-Liste enthalten ist;slow_commands
– Liste langsamer Befehle;num_close_matches
– die maximale Anzahl der vorgeschlagenen nahen Übereinstimmungen, standardmäßig 3
.excluded_search_path_prefixes
– Pfadpräfixe, die bei der Suche nach Befehlen ignoriert werden sollen, standardmäßig []
. Ein Beispiel für settings.py
:
rules = [ 'sudo' , 'no_command' ]
exclude_rules = [ 'git_push' ]
require_confirmation = True
wait_command = 10
no_colors = False
priority = { 'sudo' : 100 , 'no_command' : 9999 }
debug = False
history_limit = 9999
wait_slow_command = 20
slow_commands = [ 'react-native' , 'gradle' ]
num_close_matches = 5
Oder über Umgebungsvariablen:
THEFUCK_RULES
– Liste der aktivierten Regeln, wie DEFAULT_RULES:rm_root
oder sudo:no_command
;THEFUCK_EXCLUDE_RULES
– Liste deaktivierter Regeln, wie git_pull:git_push
;THEFUCK_REQUIRE_CONFIRMATION
– Bestätigung vor der Ausführung eines neuen Befehls erforderlich, true/false
;THEFUCK_WAIT_COMMAND
– die maximale Zeit in Sekunden, um die vorherige Befehlsausgabe zu erhalten;THEFUCK_NO_COLORS
– Farbausgabe deaktivieren, true/false
;THEFUCK_PRIORITY
– Priorität der Regeln, wie no_command=9999:apt_get=100
, Regel mit niedrigerer priority
wird zuerst abgeglichen;THEFUCK_DEBUG
– aktiviert die Debug-Ausgabe, true/false
;THEFUCK_HISTORY_LIMIT
– wie viele Verlaufsbefehle gescannt werden, z. B. 2000
;THEFUCK_ALTER_HISTORY
– festen Befehl in den Verlauf verschieben, true/false
;THEFUCK_WAIT_SLOW_COMMAND
– die maximale Zeit in Sekunden zum Abrufen der vorherigen Befehlsausgabe, wenn diese in der slow_commands
-Liste enthalten ist;THEFUCK_SLOW_COMMANDS
– Liste langsamer Befehle, wie lein:gradle
;THEFUCK_NUM_CLOSE_MATCHES
– die maximale Anzahl naheliegender Übereinstimmungen, die vorgeschlagen werden können, z. B. 5
.THEFUCK_EXCLUDED_SEARCH_PATH_PREFIXES
– Pfadpräfixe, die bei der Suche nach Befehlen ignoriert werden sollen, standardmäßig []
.Zum Beispiel:
export THEFUCK_RULES= ' sudo:no_command '
export THEFUCK_EXCLUDE_RULES= ' git_pull:git_push '
export THEFUCK_REQUIRE_CONFIRMATION= ' true '
export THEFUCK_WAIT_COMMAND=10
export THEFUCK_NO_COLORS= ' false '
export THEFUCK_PRIORITY= ' no_command=9999:apt_get=100 '
export THEFUCK_HISTORY_LIMIT= ' 2000 '
export THEFUCK_NUM_CLOSE_MATCHES= ' 5 '
Wenn Sie einen bestimmten Satz nicht öffentlicher Regeln erstellen möchten, diese aber dennoch mit anderen teilen möchten, erstellen Sie ein Paket mit dem Namen thefuck_contrib_*
mit der folgenden Struktur:
thefuck_contrib_foo
thefuck_contrib_foo
rules
__init__.py
*third-party rules*
__init__.py
*third-party-utils*
setup.py
The Fuck findet Regeln im rules
.
Das Standardverhalten von The Fuck erfordert Zeit, um vorherige Befehle erneut auszuführen. Im Instant-Modus spart The Fuck Zeit, indem es die Ausgabe mit einem Skript protokolliert und dann das Protokoll liest.
Derzeit unterstützt der Instant-Modus nur Python 3 mit Bash oder ZSH. Die Autokorrekturfunktion von zsh muss ebenfalls deaktiviert werden, damit thefuck ordnungsgemäß funktioniert.
Um den Instant-Modus zu aktivieren, fügen Sie --enable-experimental-instant-mode
zur Alias-Initialisierung in .bashrc
, .bash_profile
oder .zshrc
hinzu.
Zum Beispiel:
eval $( thefuck --alias --enable-experimental-instant-mode )
Siehe CONTRIBUTING.md
Die Projektlizenz finden Sie hier.