Primeiro, como mencionado no comentário de Robert, seu snippet não é válido. No mínimo, você precisa de um ponto-e-vírgula ou de uma nova linha antes de }
. As instruções de impressão provavelmente não estão corretas.
No entanto, há o suficiente aqui para adivinhar o que está acontecendo, então vou explicar isso.
Quando você executa ansi-term
, ele chama um shell com a variável de ambiente $INSIDE_EMACS
set. O código shell então faz outras coisas, o principal é redefinir a função chpwd
para que ela imprima coisas adicionais, que sem dúvida incluem o diretório de trabalho atual. Você pode facilmente verificar isso observando que em cada comando você provavelmente verá o diretório atual em algum lugar na área de prompt após a conclusão do último comando.
Quando o termo ans vê algo parecido com um diretório no início de uma linha, ele rastreia isso. Então, nesse sentido, esse código não é especial; o diretório poderia ter sido mostrado de várias maneiras, como a adição de \w
ao prompt por meio da configuração da variável de ambiente PS1
.
Como para o item 2, consulte " Abre o arquivo remoto enquanto estiver no buffer / janela do emacs ansi-term: ansi-term + tramp "