Dias atrás submeti ao site Slackbuilds.org o pacote do software Tramp versão 2.2.7 para o Linux Slackware 14. Este programa em Lisp coloca suporte no Emacs para o uso e edição de arquivos.

TRAMP significa Transparent Remote (file) Access, Multiple Protocol. Este software possibilita e edição remota de arquivos, similar ao Ange-FTP. A diferença é que o Ange-FTP usa o FTP para transferir arquivos entre o host local e o remoto, enquanto que o TRAMP usa uma combinação do rsh e do rcp ou programas semelhantes como ssh/scp.

Após sua instalação o usuário poderá acessar localmente arquivos localizados em máquinas remotas. Accesso a arquivos de sistemas de arquivos para edição, controle de versão. O acesso à maquina remota poderá ser por rshrlogintelnet e programas com qualquer método similar de conexão. O pacote Tramp dá também suporte ao ssh que é sem dúvida a mais comum e mais usada por este pacote. Por ser uma acesso mais seguro, e em geral a maior parte dos sistema já não permitirem o uso de outras formas de login. (No Emacs para Windows o tramp utilizará o suporte do programa Putty).

O uso efetivo do Tramp irá requerer a instalação do pacote que pode ser baixado de http://www.gnu.org/software/tramp/. Ou se quiser baixar de um repositório de desenvolvimento, clone a árvore de diretórios com  "git clone git://git.savannah.gnu.org/tramp.git".

 
Requisitos são:

- GNU Autoconf 2.50

- GNU make 3.76

- GNU texinfo 4.6

(além obviamente do Emacs...) 😉

Depois: "./configure " e "make", "make install". Que colocará os arquivos essenciais no diretório "/usr/share/emacs...". Não se esqueça, por fim de editar o seu .emacs (ou, dependendo da configuração, o .xemacs/init.el), colocando o item:

  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. (require 'tramp)
  3. (setq tramp-syntax 'url)
  4. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Um uso muito básico, e que mostra o poder deste software é a edição de um arquivo de configuração, por exemplo, que está numa máquina remota, usando uma sessão segura via ssh. No emacs aberto use C-x C-f, preencha com os dados da conexão no buffer:

Find file: /ssh:rmartini@sdf-eu.org:/~/.mailboxlist (ou qualquer outro arquivo que queira editar). E lembrando: se pode usar outros protocolos, a limitação é o ftps que só poderá ser usado em rede local.

Pedido de senho numa sessão ssh remota...

 

Buffer com log da conexão...

 

O Tramp guarda um histórico dos comandos feitos no arquivo ~/.emacs.d/tramp, o que é muito bom pata a automação de nossas atividades de edição, - - algo como:

;; -*- emacs-lisp -*- <13/08/11 01:31:03 /home/rmartini/.emacs.d/tramp>
;; Tramp connection history. Don't change this file.
;; You can delete it, forcing Tramp to reapply the checks.

((["scp" "rmartini" "192.168.2.13" nil nil]
("uname" "Linux 3.2.45-smp")
("test" "test")
("remote-path"
("/bin" "/usr/bin" "/sbin" "/usr/sbin" "/usr/local/bin" "/usr/local/sbin"))
("remote-shell" "/bin/sh")
("busybox" nil)
("file-exists" "test -e")
("readlink" "\\readlink")  [etc....]

 

Muitos se perguntarão sobre a relação custo&benefício de um programa como o Tramp: se temos hoje coisas como skydrive, dropbox, etc. A vantagem: é que não precisamos baixar nada num servidor da nuvem, é de sistema para sistema, numa espécie de edição on the fly... Leia o manual para centenas de outras adaptações e configurações: http://www.gnu.org/software/tramp/

Referências
http://www.emacswiki.org/emacs/TrampMode
http://jeremy.zawodny.com/blog/archives/000983.html

 
Revisão v. 1.1