Melhor maneira de editar arquivos linux remotos no emacs do windows

2

Qual é a maneira mais rápida e confiável de trabalhar em arquivos através de uma máquina Linux com o Emacs através de uma máquina host Windows? Eu preciso ser capaz de copiar e colar facilmente texto entre quadros do Emacs e usar todos os atalhos de teclado. Então, Putty e Cygwin estão fora de questão. Eu tentei o modo TRAMP, mas ele trava quando tento conectar.

    
por Eddy 01.08.2011 / 00:22

3 respostas

3

Tramp é definitivamente a resposta certa. Se você tiver um problema com o Tramp, conserte-o. A maneira mais simples de fazer o Tramp entrar no Windows é com o plink , o tunelamento e script ssh do PuTTY componente. O ssh do Cygwin é outra possibilidade.

Um problema que corri contra é que plink força a variável de ambiente TERM a xterm . Isso pode fazer com que seu .profile ou outro script de login emita dados, pensando que está falando com um terminal, mas esses dados confundirão seus scripts. Normalmente, você chamaria plink com a opção -T para informar que não emula um terminal. No Emacs, use o método plinkx Tramp, que força TERM a dumb no lado remoto:

(if (eq system-type 'windows-nt)
    (setq tramp-default-method "plinkx"))

No lado remoto, verifique se os arquivos de login não emitem nenhuma saída, como um prompt quando $TERM é dumb .

    
por 01.08.2011 / 18:10
0

Eu acho que quando você disse que "putty e cygwin estão fora de questão", você não quis usar o emacs diretamente do console do Cygwin ou do shell do PuTTY, mas usar ntemacs (Emacs para Windows) com o acesso ao seu Linux .

A boa notícia é que isso é viável! :) Eu tenho usado uma combinação de ntemacs e Cygwin (para acesso ssh) com bons resultados.

Aqui está o que você precisa fazer.

  • Instale o Cygwin com o openssh instalado (se você não tiver certeza, então apenas instalar tudo) e configurar o seu ssh para que você possa acessar o seu caixas de Linux sem senha, para o qual, por favor consulte este curto e doce artigo .

  • Copie o cygwin-mount de Michael Cook e Klaus Berndl do emacswiki e colocá-lo em dizer ~ / .emacs.d / plugins / cygwin-mount (ou em qualquer lugar o seu pacotes de emacs de terceiros ao vivo).

  • Em seus .emacs, tenha algo como o seguinte para ativar o cygwin-mount.

(add-to-list 'load-path "~/.emacs.d/plugins/cygwin-mount")

(defvar cygwin-bin-dir
  "c:/cygwin/bin/"
  "*Directory of Cygwin bin.")

(when (eq (window-system) 'w32)
  (progn
    (setenv "PATH" (concat cygwin-bin-dir ";" (getenv "PATH")))
    (setq exec-path (cons cygwin-bin-dir exec-path))
    (require 'cygwin-mount)
    (cygwin-mount-activate)))

  • Agora reinicie o emacs e C-x C-f e digite "/ sshx: your_host:" no minibuffer (observe o cólon final). Se tudo correr bem, tramp / ssh deve chutar e você deve ser capaz de ver o controle remoto diretórios.

Espero que isso ajude.

    
por 01.08.2011 / 02:52
0

Em vez de executar o Emacs localmente, por que não executá-lo remotamente na caixa do Linux e exibi-lo em uma janela X local.

O que você precisará:

  • X Server para Windows: Algumas possíveis soluções gratuitas incluem Xming , Cygwin / X (Eu sei, você disse que não Cygwin.)
  • Emacs no host do Linux
  • Uma maneira de iniciar o comando remoto (algo como ssh)

Os passos básicos:

  1. Inicie seu X Server no Windows
  2. Inicie o Emacs remotamente e exiba-o no seu X Server local. Eu costumo fazer isso usando o ssh, emitindo o comando "ssh -X @ emacs". Alternativamente, você poderia logar na caixa do Linux, definir a variável DISPLAY ("export DISPLAY =: 0") e depois iniciar o emacs.
por 11.08.2011 / 14:26