come inviare ssh al server remoto e usare emacs locali per modificare i file?


8

Esiste un modo per utilizzare emacs installato sul mio computer locale per accedere ai file remoti che ho su un server remoto? Ho cercato su Google e ho scoperto che dovrei usare TrampMode, tuttavia è necessario che conosca il percorso esatto del file. Non c'è un modo per me di aprire una connessione ssh al server remoto e da lì aprire i file con gli emacs locali nel mio computer?

Risposte:


5

Esistono vari modi per farlo, ma in genere si sta affrontando questo problema al contrario. Copia le tue configurazioni emacs sul computer remoto e usa emacs local nei file che stai modificando.

I "vari modi per farlo" rientrerebbero in due categorie. In primo luogo sarebbero i modi di montare un'unità remota localmente attraverso qualcosa come sshfs, alcuni file system di fusibili, samba, nfs o qualsiasi altro numero di altri sistemi di montaggio per portare l'accesso a livello di file al tuo computer. In secondo luogo sarebbero vari programmi che ti consentono di accedere e navigare in un sistema remoto, quindi operare sui file trasferendone una copia in un file temporaneo locale, modificandolo e trasferendolo nuovamente. Diversi programmi rendono questo processo piuttosto semplice, ma è un trucco.


1
"Diversi programmi rendono questo processo piuttosto semplice, ma è un trucco." Non è un trucco, è un modo naturale di lavorare con file remoti.
Gilles 'SO- smetti di essere malvagio' il

@Gilles: non ne so nulla Tramp, quindi la mia delegazione "hack" non deve necessariamente essere applicata. Stavo pensando in particolare a vari programmi di gestione file con voci di menu come "apri in un editor". Sebbene funzionino per aprire un file, in genere sono fragili nel modo in cui richiedono che il file venga copiato, modificato, copiato di nuovo, ecc. I salvataggi di file intermedi prima della chiusura dell'editor spesso non vengono spinti a monte, rendendoli un modo scomodo di lavorare sui file. Se conosci un modo per aggirare i limiti di Tramp@starcorn di cui ti lamenti in ogni caso, aggiungi un'altra risposta!
Caleb,

1
Con Tramp, l'editor sta facendo il lavoro, quindi sa spingere al momento del salvataggio e così via. La soluzione ideale sarebbe far interagire emacsserver e ssh, ma è difficile. Le due soluzioni alternative che avrei offerto sono sshfs ed eshell, entrambi già menzionati.
Gilles 'SO- smetti di essere malvagio' il

2

Oppure puoi aprire emacs, eseguire eshell, quindi cd sul computer remoto, come:

cd /hostname:~

Ora, esegui i comandi della shell, vai al file desiderato e aprilo:

find-file filename

2

Penso che il vagabondo sia quello che stai cercando. È possibile utilizzare la modalità Dired per sfogliare le directory remote e cercare il file desiderato.

Ad esempio, se sto cercando un file /etc/su un computer remoto rem, farei quanto segue:

  • Apri emacs
  • colpire C-x C-f
  • rimuovere il percorso già presente
  • digita /rem:/etc/e premi invio.

Otterrai un output come questo:

/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

Quindi è possibile utilizzare ad esempio i tasti freccia per trovare il file che si desidera modificare. Premi invio quando il cursore si trova sul file per modificarlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.