Fish-shell: fish no ansi-term do emacs tem problemas imediatos

Criado em 11 jun. 2012  ·  16Comentários  ·  Fonte: fish-shell/fish-shell

Sob o termo ansi do emacs (provavelmente a única maneira de obter o poder real dos peixes dentro do emacs), o prompt se parece com:

2; peixe / casa / ahyatt2; peixe / casa / ahyatt
ahyatt @ahyatt / home / ahyatt>

Meu termo é eterm-color, que é padrão para ansi-term. Provavelmente, algumas das sequências de controle ansi padrão no prompt não são completamente kosher.

bug release notes

Comentários muito úteis

A correção acima está próxima. Adicionando:

function fish_title
  true
end

para ~ / .config / fish / config.fish corrigiu para mim no Emacs 24.1

Todos 16 comentários

Depois de relatar isso, percebi que isso está documentado na documentação original do fish, com a correção sendo: echo 'function fish_title; end'> ~ / .config / fish / config.fish

No entanto, isso não funciona para mim:

Bem-vindo ao peixe, a concha amigável e interativa
Digite helpB para obter instruções sobre como usar peixes
fish: Função desconhecida “fish_title”
fish: Função desconhecida “fish_title”
ahyatt @ahyatt ~>

Eu tenho exatamente o mesmo problema, mas com o iTerm.

A 'correção' também não funcionou para mim.

A correção acima está próxima. Adicionando:

function fish_title
  true
end

para ~ / .config / fish / config.fish corrigiu para mim no Emacs 24.1

É esse.

+1

@akrito Obrigado! Isso funcionou para mim também.

O hack do título de fish não está funcionando para mim. Pode não haver título, mas ainda está mudando a pasta exibida no bloco (quando visualizado a partir do iterm)

@SlightlyCyborg : Se você não usar o título de peixe, a pasta será exibida duas vezes (e apenas uma vez com ela)? Se você usar em outro terminal, funciona?

O iTerm tem integração especial com conchas , e a versão fish não está condicionada ao fato de $ TERM ser o iTerm, e ele apenas coloca a tela na lista negra. Por padrão, este arquivo será salvo como ~/.iterm2_shell_integration.fish , então você pode querer ver o que acontece quando você remove isso.

@faho Eu só verifiquei no iterm (parece que é apenas um Terminal padrão do macs) para descobrir porque eu ainda estava recebendo uma linha estranha impressa no termo emacs toda vez que eu usava cd

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

Sim, se eu remover o fish_title da configuração, verei a pasta aparecer duas vezes no aplicativo Mac Terminal. A mesma coisa ainda acontece no termo emacs.

@SlightlyCyborg : Execute isto:

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

Ele imprime "verdadeiro"? Nesse caso, este é o _nosso_ relatório cwd para VTE ou Terminal Apple. Já que você está executando o emacs em um terminal que pode lidar com isso, estamos imprimindo, mas o emacs então o desmonta para que o termo não obtenha mais a sequência completa (outra limitação do ansi-term).

Podemos precisar fazer o que a Apple faz pelo 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

Vou adicionar a verificação $ INSIDE_EMACS para o CWD OSC e definir um fish_title vazio se o usuário estiver usando VTE / Terminal.app. O raciocínio para o último é que esses terminais modernos compõem um título mais agradável se não tentarmos fornecer um personalizado (nenhum caminho no título duas vezes, "peixe" no título duas vezes) - e o usuário pode configurar quais componentes eles ' d como em seu terminal dentro das preferências do terminal.

Antes e depois em Terminal.app (você pode configurar Terminal.app para mostrar o caminho completo, se preferir):
messy

cleaner

Eu tropecei na integração do shell do iTerm. Podemos mencionar isso também no readme da seção de peixes?

@rdrey :

Desculpe, eu estava no repositório completamente errado na noite passada. Achei que estava comentando sobre um problema em https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Btools/shell. 😅

Em vez disso, criei um PR para o iTerm2. (https://github.com/gnachman/iterm2-website/pull/35)

Esta página foi útil?
0 / 5 - 0 avaliações