Emacs eshell sobre o SSH não obedecendo comandos chave ou elisp

4

Quando o SSHing para um servidor remoto, o Eshell não se comporta muito bem, por exemplo:

M-x eshell
ssh server
<tab> *inserts literal tab instead of trying to complete*

Atingir <tab> , por exemplo, insere uma guia literal. Não há como obter a conclusão de tabulação, a interação lisp (como find-file blah ) etc. sobre SSH? Toda a documentação que li diz que Eshell é "ciente do TRAMP", o que eu suponho que significava que poderia lidar com isso.

Estou apenas errado na minha suposição de que isso funcionaria no SSH ou algo está quebrado?

Isto está no pré-teste do Emacs 24.0.94.

    
por Brad Wright 20.03.2012 / 11:26

1 resposta

6

O SSH é realmente integrado ao Eshell usando o modo Tramp , então em vez de executar o comando "ssh" você usa cd com um nome de caminho especial:

~ $ cd /ssh:[email protected]:~
/ssh:[email protected]:/home/user $ 

Em seguida, você deve ter a conclusão de tabulação para comandos e nomes de arquivos no servidor remoto. A conclusão da tabulação pode ser lenta, dependendo de quantas alternativas ela precisa pesquisar remotamente e transferir pela rede.

Se a sua memória muscular trai você e você continua digitando "ssh", você pode querer definir um alias em eshell (isso será automaticamente salvo em ~/.emacs.d/eshell/alias )

$ alias ssh 'cd /ssh:$1:~'

Além disso, quando Eshell estiver em um servidor remoto e você pressionar C-x C-f , ele completará nomes de arquivos no servidor remoto. Eles serão carregados automaticamente em um buffer local e gravados de volta no SCP. Você pode fazer isso sem o Eshell, também, é uma característica do modo tramp.

    
por 22.08.2012 / 06:07

Tags