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.
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):
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)
Comentários muito úteis
A correção acima está próxima. Adicionando:
para ~ / .config / fish / config.fish corrigiu para mim no Emacs 24.1