GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So lösen Sie __vi_internal_vim_alias:Befehl nicht gefunden?

Dasselbe Problem tritt bei Fedora 33 auf. Dies scheint darauf zurückzuführen zu sein, dass ein Alias ​​​​für sudo definiert wurde in meiner Umgebung:

$ alias sudo
alias sudo='\sudo '

Aus diesem Grund löst Bash irgendwie Aliase auf, die als Argumente an sudo übergeben werden Alias, wie im folgenden Beispiel gezeigt:

$ alias foo='echo foo'
$ sudo foo
foo

Ich hätte stattdessen folgendes erwartet:

$ sudo foo
$ sudo: foo: command not found

Das Löschen dieses Alias ​​hat bei mir funktioniert. Dieser Alias ​​wurde von /usr/local/bin/alias.sh erstellt , Teil von synth-shell Projekt (https://github.com/andresgongora/synth-shell)


Wie @scy erwähnte, ist das Unaliasing von vi und vim eine Workaround-Lösung, um den Alias ​​sudo="sudo " beizubehalten, damit er mit anderen Aliasen verwendet werden kann.

Erweitern seiner/ihrer Antwort für die verschiedenen Shells:

ZSH-Shell: Zur .zshrc hinzufügen Datei (des Benutzers, der von den Änderungen betroffen sein soll)

  • zu finden unter:

Für Fedora 33 Workstation (oder Server oder eine andere nicht-atomare Betriebssystemdistribution):/home/$USER/.zshrc

Für Fedora CoreOS 33.x (oder Silverblue 33 oder eine andere ähnliche atomare Betriebssystemdistribution):/var/home/$USER/.zshrc

  • die folgenden Codezeilen:
[ "$(type -w vi)" = 'vi: alias' ] && unalias vi
[ "$(type -w vim)" = 'vim: alias' ] && unalias vim

BASH-Shell: Zur .bashrc hinzufügen Datei (des Benutzers, der von den Änderungen betroffen sein soll)

  • befindet sich an den gleichen Speicherorten, entsprechend dem OS/Distro-spezifischen Speicherort für das Home-Verzeichnis von $USER (überprüfen Sie die Anweisungen für Fedora Workstation usw.)
  • den folgenden Code:
[ "$(type -t vi)" = 'alias' ] && unalias vi
[ "$(type -t vim)" = 'alias' ] && unalias vim

P.S. Bezüglich ZSH-Shell , kann diese Lösung ähnliche Probleme mit anderen CLI-Anwendungen lösen, die sich in einer ähnlichen Initialisierungssituation befinden. Zum Beispiel:mc (Mitternachtskommandant). In der Zwischenzeit, mc wird in BASH Shell kein solches Problem haben .


Linux
  1. Sudo:Nocorrect:Befehl nicht gefunden?

  2. So beheben Sie den Fehler „-bash:xclock:command not found“ in CentOS / RHEL

  3. ifrename:Befehl nicht gefunden

  4. netstat:Befehl nicht gefunden

  5. kubectl:Befehl nicht gefunden

aws-shell:Befehl nicht gefunden

w:Befehl nicht gefunden

df:Befehl nicht gefunden

du:Befehl nicht gefunden

rm:Befehl nicht gefunden

mv:Befehl nicht gefunden