Fish-shell: Fisch in Emacs Ansi-Term hat schnelle Probleme

Erstellt am 11. Juni 2012  ·  16Kommentare  ·  Quelle: fish-shell/fish-shell

Unter dem Ansi-Begriff von emacs (wahrscheinlich der einzige Weg, um die wahre Kraft von Fischen in emacs zu bekommen) sieht die Eingabeaufforderung folgendermaßen aus:

2; Fisch / Zuhause / Ahyatt2; Fisch / Zuhause / Ahyatt
ahyatt @ahyatt / home / ahyatt>

Mein Begriff ist eterm-color, was für ansi-term Standard ist. Wahrscheinlich sind einige der Standard-Ansi-Steuerungssequenzen in der Eingabeaufforderung nicht ganz koscher.

bug release notes

Hilfreichster Kommentar

Das obige Update ist in der Nähe. Hinzufügen:

function fish_title
  true
end

to ~ / .config / fish / config.fish hat es für mich in Emacs 24.1 behoben

Alle 16 Kommentare

Nachdem ich dies gemeldet hatte, bemerkte ich zufällig, dass dies in der ursprünglichen Fischdokumentation dokumentiert ist. Der Fix lautete: echo 'function fish_title; end'> ~ / .config / fish / config.fish

Das funktioniert bei mir jedoch nicht:

Willkommen bei fish, der freundlichen interaktiven Muschel
Geben Sie helpB ein, um Anweisungen zur Verwendung von Fisch zu erhalten
Fisch: Unbekannte Funktion “fish_title”
Fisch: Unbekannte Funktion “fish_title”
ahyatt @ahyatt ~>

Ich habe genau das gleiche Problem, aber mit iTerm.

Das 'Update' hat auch bei mir nicht funktioniert.

Das obige Update ist in der Nähe. Hinzufügen:

function fish_title
  true
end

to ~ / .config / fish / config.fish hat es für mich in Emacs 24.1 behoben

Das ist die eine.

+1

@akrito Danke! Das hat auch bei mir funktioniert.

Der Fischtitel-Hack funktioniert bei mir nicht. Möglicherweise ist kein Titel vorhanden, aber der in der Kachel angezeigte Ordner wird weiterhin geändert (von iterm aus gesehen).

@SlightlyCyborg : Wenn Sie den

iTerm hat eine spezielle Integration mit Muscheln , und die Fischversion ist nicht davon abhängig, dass $ TERM iTerm ist, sondern nur ein Bildschirm mit schwarzen Listen. Standardmäßig wird diese Datei als ~/.iterm2_shell_integration.fish gespeichert. Sie möchten also möglicherweise sehen, was passiert, wenn Sie diese entfernen.

@faho Ich habe es nur auf iterm überprüft (es stellt sich heraus, dass es sich nur um ein Macs-Standardterminal handelt), um herauszufinden, warum ich jedes Mal, wenn ich eine CD verwendete, eine seltsame Zeile auf den Emacs-Begriff gedruckt bekam

7;file://Collins-MacBook-Air.local/Users/collinbell/dameon

Ja, wenn ich den fish_title aus der Konfiguration entferne, wird der Ordner in der Mac Terminal-App zweimal angezeigt. Das gleiche passiert immer noch in emacs Begriff.

@ LightlyCyborg : Führen Sie

    if test "$VTE_VERSION" -ge 3405 -o "$TERM_PROGRAM" = "Apple_Terminal"
        echo "True"
    end

Wird "true" gedruckt? In diesem Fall handelt es sich um Ihre CWD-Berichterstellung für VTE oder Apple Terminal. Da Sie Emacs in einem Terminal ausführen, das dies verarbeiten kann, drucken wir es, aber Emacs entstellt es dann, sodass der Begriff nicht mehr die vollständige Sequenz erhält (eine weitere Einschränkung von ansi-term).

Möglicherweise müssen wir das tun, was Apple für Emacs

/etc/bashrc_Apple_Terminal


# Working Directory
#
# Tell the terminal about the current working directory at each prompt.

if [ -z "$INSIDE_EMACS" ]; then
    update_terminal_cwd() {
    # Identify the directory using a "file:" scheme URL, including
    # the host name to disambiguate local vs. remote paths.

    # Percent-encode the pathname.
    local url_path=''
    {
        # Use LC_CTYPE=C to process text byte-by-byte. Ensure that
        # LC_ALL isn't set, so it doesn't interfere

https://gist.github.com/floam/f535842a16226e77d014d67bade2b2f3

Ich werde die $ INSIDE_EMACS-Prüfung für das CWD-OSC hinzufügen und einen leeren fish_title definieren, wenn der Benutzer VTE / Terminal.app verwendet. Der Grund für letzteres ist, dass diese modernen Terminals beide einen schöneren Titel bilden, wenn wir nicht versuchen, einen benutzerdefinierten bereitzustellen (kein Pfad im Titel zweimal, "Fisch" im Titel zweimal) - und der Benutzer kann konfigurieren, welche Komponenten sie sind. d wie in ihrem Terminal innerhalb der Terminaleinstellungen.

Vorher und nachher in Terminal.app (Sie können Terminal.app so konfigurieren, dass der vollständige Pfad angezeigt wird, wenn Sie dies bevorzugen):
messy

cleaner

Die Integration der iTerm-Shell hat mich gestolpert. Können wir das auch in der Readme-Datei im Fischbereich erwähnen?

@rdrey : IIRC, iTerm liefert das aus, also musst du es mit ihnen aufnehmen.

Entschuldigung, ich war letzte Nacht im völlig falschen Repo. Ich dachte, ich würde ein Problem in https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Btools/shell kommentieren

Ich habe stattdessen eine PR für iTerm2 erstellt. (https://github.com/gnachman/iterm2-website/pull/35)

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen