Fish-shell: Fish en el término ansi de emacs tiene problemas rápidos

Creado en 11 jun. 2012  ·  16Comentarios  ·  Fuente: fish-shell/fish-shell

Bajo el término ansi de emacs (probablemente la única forma de obtener el poder real de los peces dentro de emacs), el indicador se ve así:

2; pez / hogar / ahyatt2; pez / hogar / ahyatt
ahyatt @ahyatt / home / ahyatt>

Mi término es eterm-color, que es estándar para ansi-term. Probablemente algunas de las secuencias de control ansi predeterminadas en el indicador no sean del todo kosher.

bug release notes

Comentario más útil

La solución anterior está cerca. Añadiendo:

function fish_title
  true
end

to ~ / .config / fish / config.fish me lo arregló en Emacs 24.1

Todos 16 comentarios

Después de informar esto, me di cuenta de que esto está documentado en la documentación original de peces, con la solución: echo 'function fish_title; end'> ~ / .config / fish / config.fish

Sin embargo, eso no funciona para mí:

Bienvenido a Fish, la amigable concha interactiva
Escriba helpB para obtener instrucciones sobre cómo utilizar el pescado
pez: función desconocida "título_pez"
pez: función desconocida "título_pez"
ahyatt @ahyatt ~>

Tengo exactamente el mismo problema pero con iTerm.

La 'solución' tampoco funcionó para mí.

La solución anterior está cerca. Añadiendo:

function fish_title
  true
end

to ~ / .config / fish / config.fish me lo arregló en Emacs 24.1

Éste es el indicado.

+1

@akrito ¡Gracias! Esto funcionó para mí también.

El truco del título del pez no me funciona. Puede que no haya título, pero todavía está cambiando la carpeta que se muestra en el mosaico (cuando se ve desde iterm)

@SlightlyCyborg : Si no usas el título del pez, ¿la carpeta se muestra dos veces (y solo una vez con ella)? Si lo usa en otro terminal, ¿funciona?

iTerm tiene una integración especial con shells , y la versión fish no está condicionada a que $ TERM sea iTerm, y solo incluye la pantalla de listas negras. De forma predeterminada, este archivo se guardará como ~/.iterm2_shell_integration.fish , por lo que es posible que desee ver qué sucede cuando lo elimina.

@faho Solo lo verifiqué en iterm (resulta que es solo una Terminal estándar de macs) para averiguar por qué todavía recibía una línea extraña impresa en el término de emacs cada vez que usaba cd

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

Sí, si elimino el fish_title de la configuración, veré que la carpeta aparece dos veces en la aplicación Mac Terminal. Lo mismo sucede todavía en el término emacs.

@SlightlyCyborg : Ejecute esto:

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

¿Imprime "verdadero"? En ese caso, este es _nuestro_ informe de cwd para VTE o Apple Terminal. Dado que está ejecutando emacs en una terminal que puede manejar esto, lo estamos imprimiendo, pero emacs luego lo destruye para que el término ya no obtenga la secuencia completa (otra limitación más de ansi-term).

Es posible que debamos hacer lo que hace Apple por 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

Voy a agregar la verificación $ INSIDE_EMACS para el CWD OSC y definir un fish_title vacío si el usuario está usando VTE / Terminal.app. El razonamiento para esto último es que estos terminales modernos componen un título más agradable si no intentamos proporcionar uno personalizado (sin ruta en el título dos veces, "pesca" en el título dos veces) - y el usuario puede configurar qué componentes ' me gusta en su terminal dentro de las preferencias del terminal.

Antes y después en Terminal.app (puede configurar Terminal.app para que muestre la ruta completa, si lo prefiere):
messy

cleaner

Me tropecé con la integración del shell iTerm. ¿Podríamos mencionar eso también en el archivo Léame de la sección de pescado?

@rdrey : IIRC, iTerm envía eso, así que tendrás que hablar con ellos.

Lo siento, estaba en el repositorio completamente incorrecto anoche. Pensé que estaba comentando un problema en https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Btools/shell. 😅

En su lugar, he creado un PR para iTerm2. (https://github.com/gnachman/iterm2-website/pull/35)

¿Fue útil esta página
0 / 5 - 0 calificaciones