Fish-shell: le poisson dans le terme ansi d'emacs a des problèmes rapides

Créé le 11 juin 2012  ·  16Commentaires  ·  Source: fish-shell/fish-shell

Sous le terme ansi d'emacs (probablement le seul moyen d'obtenir le véritable pouvoir du poisson à l'intérieur d'emacs), l'invite ressemble à:

2; poisson / maison / ahyatt2; poisson / maison / ahyatt
ahyatt @ahyatt / accueil / ahyatt>

Mon terme est eterm-color, qui est standard pour ansi-term. Certaines des séquences de contrôle ansi par défaut dans l'invite ne sont probablement pas tout à fait casher.

bug release notes

Commentaire le plus utile

Le correctif ci-dessus est proche. Ajouter:

function fish_title
  true
end

à ~ / .config / fish / config.fish l'a corrigé pour moi dans Emacs 24.1

Tous les 16 commentaires

Après avoir signalé cela, j'ai remarqué que cela était documenté dans la documentation originale de fish, le correctif étant: echo 'function fish_title; end'> ~ / .config / fish / config.fish

Cependant, cela ne fonctionne pas pour moi:

Bienvenue au poisson, la coquille interactive conviviale
Tapez helpB pour obtenir des instructions sur l'utilisation du poisson
fish: fonction inconnue "fish_title"
fish: fonction inconnue "fish_title"
ahyatt @ahyatt ~>

J'ai exactement le même problème mais avec iTerm.

Le «correctif» n'a pas fonctionné pour moi non plus.

Le correctif ci-dessus est proche. Ajouter:

function fish_title
  true
end

à ~ / .config / fish / config.fish l'a corrigé pour moi dans Emacs 24.1

C'est le bon.

+1

@akrito Merci! Cela a fonctionné pour moi aussi.

Le hack de titre de poisson ne fonctionne pas pour moi. Il n'y a peut-être pas de titre, mais le dossier est toujours en train de changer le dossier affiché dans la vignette (vu depuis iterm)

@SlightlyCyborg : Si vous n'utilisez pas le titre de poisson, obtenez-vous le dossier affiché deux fois (et une seule fois avec)? Si vous l'utilisez sur un autre terminal, cela fonctionne-t-il?

iTerm a une intégration spéciale avec les shells , et la version fish n'est pas conditionnelle à ce que $ TERM soit iTerm, et il ne s'agit que d'un écran de listes noires. Par défaut, ce fichier sera enregistré sous le nom ~/.iterm2_shell_integration.fish , vous voudrez peut-être voir ce qui se passe lorsque vous le supprimez.

@faho Je ne l'ai vérifié que sur iterm (il s'avère que ce n'est que le terminal standard de Mac) pour savoir pourquoi je recevais toujours une ligne étrange imprimée sur emacs term à chaque fois que j'utilisais cd

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

Oui, si je supprime le fish_title de la configuration, je verrai le dossier apparaître deux fois sur l'application Mac Terminal. La même chose se produit toujours en terme emacs.

@SlightlyCyborg : Exécutez ceci:

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

Est-ce qu'il affiche «vrai»? Dans ce cas, il s'agit de _our_ rapports cwd pour VTE ou Apple Terminal. Puisque vous exécutez emacs dans un terminal qui peut gérer cela, nous l'imprimons, mais emacs le déforme ensuite pour que le terme n'obtienne plus la séquence complète (encore une autre limitation de ansi-term).

Nous devrons peut-être faire ce qu'Apple fait pour 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

Je vais ajouter le contrôle $ INSIDE_EMACS pour le CWD OSC et définir un fish_title vide si l'utilisateur utilise VTE / Terminal.app. Le raisonnement de ce dernier est que ces terminaux modernes composent tous les deux un titre plus agréable si nous n'essayons pas de fournir un titre personnalisé (pas de chemin dans le titre deux fois, "pêcher" dans le titre deux fois) - et l'utilisateur peut configurer les composants qu'il ' d comme dans leur terminal à l'intérieur des préférences du terminal.

Avant et après dans Terminal.app (vous pouvez configurer Terminal.app pour afficher le chemin complet, si vous préférez):
messy

cleaner

J'ai été trébuché par l'intégration du shell iTerm. Pouvons-nous mentionner cela dans le fichier readme de la section poisson également?

@rdrey : IIRC, iTerm expédie cela, vous devrez donc le prendre avec eux.

Désolé, j'étais dans le mauvais repo hier soir. Je pensais que je commentais un problème dans https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Btools/shell. 😅

J'ai créé un PR pour iTerm2 à la place. (https://github.com/gnachman/iterm2-website/pull/35)

Cette page vous a été utile?
0 / 5 - 0 notes