Como posso iniciar um aplicativo local remotamente?

2

Eu uso o TextMate no Mac OS X para desenvolver. Os arquivos que eu preciso editar estão em uma máquina Linux, e eu tenho o sistema de arquivos Linux montado no meu Mac OS X. Abrir os arquivos e salvá-los no TextMate não é um problema.

O que eu quero fazer é estar logado e trabalhando em uma linha de comando na caixa Linux, mas ser capaz de executar um comando que comanda remotamente o TextMate no meu Mac para abrir o arquivo, como

user@linux $ mate <filename>

Eu quero abrir o arquivo no TextMate no meu Mac OS X (mudando assim o foco do meu Terminal.app para o TextMate.app). Como posso conseguir esse efeito?

    
por yungsters 16.06.2010 / 23:43

5 respostas

4

Eu estava me fazendo uma pergunta semelhante no outro dia e percebi que seria apenas um pouco de script, então eu escrevi um script para fazer isso. Eu postei no GitHub aqui . Este é um script bash que você instala no sistema remoto. Ele usa o SSH para se conectar ao seu Mac, montar o sistema de arquivos do Linux via sshfs e, em seguida, abrir o arquivo especificado usando o comando open do OS X. Aceita a maioria dos argumentos que open aceita, apenas passando-os, por isso é razoavelmente flexível. Eu ainda estou mexendo, então me avise se você tiver alguma dificuldade.

Também fui apontado para rmate , um script Ruby específico do TextMate que faz uma coisa muito parecida via scp e o comando mate do TextMate. Isso pode exigir TextMate 2 , que está disponível em formato alpha no GitHub.

    
por 29.10.2012 / 20:03
1

Eu não acredito que isso seja possível. Uma vez que você ssh em sua máquina remota, tudo que você digitar na linha de comando é passado para a máquina remota, que não pode iniciar o TextMate em sua máquina local.

    
por 31.07.2010 / 20:29
1

Você pode usar o sshfs no MacFUSE que permite montar (como uma unidade "local") qualquer canal que você possa acessar via ssh / sftp.

Primeiro você precisa instalar o MacFUSE (que é uma porta do FUSE [ link para o Mac OSX), você pode obter se de

http://code.google.com/p/macfuse/

é um pacote de software padrão do OS X que você pode instalar simplesmente clicando duas vezes nele.

Então você precisa baixar o sshfs (o software que coloca o FUSE em relação ao ssh)

http://code.google.com/p/macfuse/wiki/MACFUSE_FS_SSHFS

escolha entre

sshfs-static-leopard.gz
sshfs-static-tiger.gz

de acordo com a versão do seu sistema operacional. Então gunzip e colocá-lo em seu caminho (abra um terminal no lugar onde você baixou, então faça algo como

gunzio sshfs-static*gz
sudo cp sshfs-* /usr/local/bin/sshfs
sudo chmod a+rx /usr/local/bin/sshfs

não se preocupe se a etapa gunzip retornar um erro, pode ser que o seu navegador já tenha descompactado).

Agora, abra um terminal e faça

mkdir local_mount_point
sshfs user@host:folder local_mount_point

e você poderá acessar o conteúdo de "pasta" no "host" na pasta local chamada "local_mount_point" (claro, você pode nomear como quiser). Por isso, um simples

mate local_mount_point/filename

fará.

É claro que você precisa instalar o software apenas uma vez e depois conectar (montar) quantas vezes quiser!

BTW, TextWrangler permite fazer isso sem instalar software extra (ele pode salvar / abrir arquivos via ssh em hosts remotos nativamente).

    
por 29.01.2011 / 16:11
1

Isso não funcionará diretamente com um aplicativo Aqua.

O aplicativo que você está lançando teria que ser instalado no host remoto e, mesmo que o host remoto seja um Mac, você ainda não poderá fazer isso com os aplicativos Aqua. (A única coisa legal sobre o X11 é que ele está ciente da rede).

Com aplicativos X, você pode usar:

ssh -Y remotehost gedit foo

Com aplicativos que não são do X, você pode usar:

ssh -t remotehost vim foo

Gedit e vim são exemplos de curso. Substitua pelos seus segundo e terceiro editores de texto favoritos (já que o TextMate é aparentemente o seu primeiro favorito).

Para obter o comportamento desejado de uma maneira completamente diferente, crie um script chamado rmate e coloque-o em $PATH . O conteúdo do script é o seguinte:

#!/bin/bash

TMPDIR=/tmp
TMPFILE=$(mktemp -t textmate-${UID})
scp $1 ${TMPFILE}
mate -w ${TMPFILE}
scp ${TMPFILE} $1
rm -f ${TMPFILE}

Para editar arquivos remotos no TextMate, execute isto:

rmate remotehost:/path/to/file

Agora você está editando o arquivo "remoto" no TextMate. Quando terminar, salve e feche a janela. O arquivo será copiado de volta para o sistema remoto em sua localização original.

Caveate: não tenho o TextMate. Eu testei isso com SubEthaEdit, mas mate também suporta a -w flag (veja aqui ) então eu suponho funcionará da mesma maneira ao fechar a janela. YMMV.

    
por 29.01.2011 / 19:25
0

você pode se conectar usando ssh user@serverip -Y Quando você executa um comando gráfico na máquina remota, ele envia a interface gráfica para o servidor X da máquina local.

EDITADO

desculpe, eu entendi mal a sua pergunta, na verdade você quer usar o aplicativo mac, não um aplicativo gráfico na máquina linux ... Mas existem no Windows e no Linux vários editores de texto que usam plugins para se conectar via ftp e editar os arquivos do servidor. Pesquisando algo assim para o mac (eu não sou um usuário do mac) eu encontrei este link para um ftp Pacote / ssh para textmate. Espero que ajude você

    
por 17.06.2010 / 00:27