Posso fazer a ponte "de trás para frente" de uma conexão ssh com meu servidor emacs local?

2

Eu gostaria muito de fazer login em uma máquina remota com ssh e através da variável de ambiente $EDITOR (ou algo similar) ser capaz de editar em meu Emacs local. Nesse caso, especificamente para quando eu fizer login e executar psql e usar o comando \e psql para editar consultas. Ser capaz de editá-los no meu Emacs local seria um grande bônus no meu fluxo de trabalho.

Eu tenho uma suspeita incômoda de que não há como isso ser feito, mas antes de desistir eu pensei em jogar aqui fora.

    
por Jacob Oscarson 06.05.2013 / 14:00

3 respostas

1

Você pode fazer isso usando tramp :

TRAMP stands for 'Transparent Remote (file) Access, Multiple Protocol'. This package provides remote file editing, similar to Ange-FTP. The difference is that Ange-FTP uses FTP to transfer files between the local and the remote host, whereas TRAMP uses a combination of rsh and rcp or other work-alike programs, such as ssh/scp.

Adicione estas linhas ao seu arquivo ~/.emacs ( fonte ):

(require 'tramp)
(setq tramp-default-method "scp")

Você deve poder abrir o arquivo remoto assim:

emacs /remote.server.com:/remote/path/foo.txt

Especificamente para uso com o comando psql , você precisaria de algo diferente. Não tem como testar isso agora, mas talvez configurar o emacs como um alias para o seu emacs local possa funcionar. Adicione esta linha ao seu arquivo .bashrc remoto:

alias emacs='ssh user@local emacs'
    
por 06.05.2013 / 15:45
1

Não estou familiarizado com emacs ou psql . Mas ...

Parece que você pode usar sshfs para montar seu servidor remoto e executar tudo localmente:

sshfs user@host mount/directory/
cd mount/directory && emacs

Se você precisar executar comandos na máquina remota, poderá montar com sshfs e, em seguida, acessar com ssh , em seguida, use caracteres de escape ssh para suspender a sessão ssh e execute o emacs em sua máquina (editando os arquivos remotos montados com sshfs ).

Outra solução seria instalar emacs na máquina remota e copiar sua configuração (eu escolhi esta solução agregada em um repositório git para o meu material vim)

    
por 06.05.2013 / 19:00
-1

Isso não pode ser feito como você descreveu. Você pode usar o SFTP (possivelmente através do FUSE) para editar arquivos no sistema remoto. Pode ser possível fazer algo realmente criativo com scripts e tubulações, mas não é uma funcionalidade incorporada.

    
por 06.05.2013 / 14:48