Fehler beim Laden der iTerm2-Fischschale: `function: Ungültiger Funktionsname '-v'`


1

Auf iTerm2 laden:

Last login: ... on ...
function: Illegal function name '-v'
~/.iterm2_shell_integration.fish (line 86):   function -v _ underscore_change
    if [ x$_ = xfish ]
                                              ^
from sourcing file ~/.iterm2_shell_integration.fish
    called on line 38 of file ~/.config/fish/config.fish

from sourcing file ~/.config/fish/config.fish
    called during startup

Welcome to fish, the friendly interactive shell
Type help for instructions on how to use fish
⋊> ~ 

~/.config/fish/config.fish:38:

test -e {$HOME}/.iterm2_shell_integration.fish ; and source {$HOME}/.iterm2_shell_integration.fish

Fischschalenversion:

⋊> ~ fish -v
fish, version 2.5.0

1
Während ich iTerm2 benutze, verwende ich nicht die Shell-Integration. Als Entwickler von Kernfischen kann ich jedoch erklären, warum Sie diesen Fehler sehen. Das Options-Parsing des functionBuilt-Ins wurde letzten November umgeschrieben, um eine Mehrdeutigkeit zu beseitigen und einen Fehler bei der Syntaxanalyse von Optionen zu beheben (siehe commit 320cb6857). Als Teil dieser Arbeit haben wir beschlossen, dass der Funktionsname zuerst angezeigt werden muss. Entschuldigung für die Probleme, die Sie verursacht haben. Ich werde beim iTerm2-Projekt nachsehen, ob sie sich bereits an diese Änderung bei Fischen angepasst haben, und wenn nicht, mit ihnen zusammenarbeiten.
Kurtis Rader

Ich glaube, meine Antwort impliziert, dass das erneute Ausführen des iTerm2-Integrations-Setups die Reihenfolge der Parameter zum Definieren dieser und möglicherweise anderer Funktionen, wie ich gesehen habe, geändert hat, wodurch das Problem bereits behoben ist.
Pysis

1
Ja, ich habe die iTerm2-Integration mit fish überprüft und bestätigt, dass sie bereits behoben ist.
Kurtis Rader

Antworten:


0

Sie können den folgenden Befehl eingeben oder die dynamischere Methode verwenden, die je nach Aktualisierung das Gleiche oder Ähnliches bewirkt:

  • Gehen Sie im Anwendungsmenü unter iTerm2> Shell-Integration installieren.
  • Gehen Sie das Dialogfeld mit den Dienstprogrammfragen durch.
  • Gehen Sie den Dialog durch, um diesen Befehl auszuführen.
⋊> ~ curl -L https://iterm2.com/misc/install_shell_integration_and_utilities.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2694  100  2694    0     0  16995      0 --:--:-- --:--:-- --:--:-- 16943
Make sure you have fish 2.2 or later. Your version is:
fish, version 2.5.0
Downloading script from https://iterm2.com/misc/fish_startup.in and saving it to /Users/jsmall/.iterm2_shell_integration.fish...
Checking if /Users/jsmall/.config/fish/config.fish contains iterm2_shell_integration...
Downloading imgcat...
Downloading it2dl...
Adding aliases...
Done.
--------------------------------------------------------------------------------

The next time you log in, shell integration will be enabled.

You will also have these commands:
imgcat filename
  Displays the image inline.
it2dl filename
  Downloads the specified file, saving it in your Downloads folder.
⋊> ~
  • Laden Sie iTerm2 neu

Kein Fehler mehr :)

Nur sehr geringfügig verwandter, aber unnötiger Link: GitHubGist - victor-torres / uninstall_shell_integration.sh


Dies löste mein Problem, indem das hier beschriebene Integrationsshell-Skript aktualisiert wurde. Ich weiß nicht, warum jemand es abgelehnt hat.
Jesper Grann Laursen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.