como ssh para servidor remoto e usar emacs local para editar arquivos?

8

Existe uma maneira de usar o emacs instalado no meu computador local para acessar arquivos remotos que tenho em um servidor remoto? Pesquisei no Google e descobri que deveria usar o TrampMode, no entanto, é necessário que eu saiba o caminho exato do arquivo. Não existe uma maneira de abrir uma conexão ssh com o servidor remoto e de lá abrir os arquivos com os emacs locais no meu computador?

starcorn
fonte

Respostas:

5

Existem várias maneiras de fazer isso, mas geralmente você está enfrentando esse problema ao contrário. Copie suas configurações do emacs para a máquina remota e use o emacs local nos arquivos que você está editando.

As "várias maneiras de fazer isso" se enquadram em duas categorias. A primeira seria a maneira de montar uma unidade remota localmente através de algo como sshfs, algum sistema de arquivos de fusíveis, samba, nfs ou qualquer outro número de outros sistemas de montagem para trazer acesso em nível de arquivo à sua máquina. Segundo, vários programas que permitem que você faça login e navegue em um sistema remoto e, em seguida, opere em arquivos transferindo uma cópia deles para um arquivo temporário local, editando-o e transferindo-o de volta. Vários programas tornam esse processo bastante simples, mas é um hack.

Caleb
fonte
1
“Vários programas fazem com que esse processo pareça bastante simples, mas é um hack.”: É disso que trata o Tramp (que é lançado com o Emacs atualmente). Não é um truque, é uma maneira natural de trabalhar com arquivos remotos.
Gilles 'SO- stop be evil'
@ Gilles: Eu não sei nada Tramp, então minha alegação de "hack" não precisa se aplicar. Eu estava pensando particularmente em vários programas de gerenciamento de arquivos que possuem itens de menu como "abrir em um editor". Embora funcionem para abrir um arquivo, eles geralmente são frágeis na maneira como exigem que o arquivo seja copiado, modificado, copiado de volta, etc. Os arquivos intermediários salvos antes do fechamento do editor geralmente não são empurrados para cima, tornando-os uma maneira estranha de trabalhar em arquivos. Se você conhece uma maneira de contornar as limitações do Tramp@starcorn reclamadas por todos os meios, adicione outra resposta!
Caleb
1
Com o Tramp, o editor está fazendo o trabalho, por isso sabe pressionar ao salvar e assim por diante. A solução ideal seria fazer o emacsserver e o ssh interoperarem, mas isso é difícil. As duas soluções alternativas que eu ofereceria são sshfs e eshell, ambas já mencionadas.
Gilles 'SO- stop be evil'
2

Ou você pode abrir o emacs, executar o eshell e depois fazer o cd na máquina remota, como:

cd /hostname:~

Agora, execute os comandos do shell, navegue até o arquivo desejado e abra-o:

find-file filename
minaev
fonte
2

Eu acho que Tramp é o que você está procurando. Você pode usar o modo Dired para procurar os diretórios remotos e procurar o arquivo que deseja.

Por exemplo, se estou procurando algum arquivo em /etc/uma máquina remota rem, faça o seguinte:

  • Open emacs
  • acertar C-x C-f
  • remova o caminho já presente
  • digite /rem:/etc/e pressione enter.

Você obterá uma saída como esta:

/ssh:rem:/etc:
total 1460
drwxr-xr-x 141 root root    12288 Aug 12 06:46 .
drwxr-xr-x  23 root root     4096 Jul 18 23:48 ..
drwx------   6 root root     4096 Nov 17  2009 .bzr
-rw-------   1 root root      749 Jul 18 23:30 .bzrignore
-rwx------   1 root root    10015 Aug 12 09:17 .etckeeper
drwxr-xr-x   3 root root     4096 Aug  6 00:47 .java
-rw-------   1 root root        0 Nov 17  2009 .pwd.lock

Então você pode usar, por exemplo, as setas do teclado para encontrar o arquivo que você deseja editar. Pressione Enter quando o cursor estiver no arquivo para editá-lo.

ph0t0nix
fonte