bagaimana cara ssh ke server jauh dan menggunakan emacs lokal untuk mengedit file?

8

Apakah ada cara untuk menggunakan emacs yang diinstal komputer lokal saya untuk mengakses file jarak jauh yang saya miliki di server jauh? Saya telah googled dan menemukan bahwa saya harus menggunakan TrampMode namun perlu bagi saya untuk mengetahui path file yang tepat. Apakah tidak ada cara bagi saya untuk membuka koneksi ssh ke server jauh dan dari sana membuka file dengan emacs lokal di komputer saya?

starcorn
sumber

Jawaban:

5

Ada berbagai cara untuk melakukan ini, tetapi secara umum Anda mengalami masalah ini secara terbalik. Salin konfigurasi emacs Anda ke mesin jarak jauh dan gunakan emacs lokal untuk file yang sedang Anda edit.

"Berbagai cara untuk melakukan ini" akan terbagi dalam dua kategori. Pertama adalah cara memasang drive jarak jauh secara lokal melalui sesuatu seperti sshfs, beberapa sistem file sekering, samba, nfs, atau sejumlah sistem pemasangan lainnya untuk membawa akses level file ke mesin Anda. Kedua adalah berbagai program yang memungkinkan Anda untuk masuk dan menelusuri sistem jarak jauh, kemudian beroperasi pada file dengan mentransfer salinannya ke file temp lokal, mengeditnya, kemudian mentransfernya kembali. Beberapa program membuat proses itu terlihat sangat mulus, tetapi ini adalah peretasan.

Caleb
sumber
1
“Beberapa program membuat proses itu terlihat sangat mulus, tetapi ini adalah peretasan.”: Itulah tentang Tramp (yang dikirimkan bersama Emacs saat ini). Ini bukan peretasan, ini cara alami untuk bekerja dengan file jarak jauh.
Gilles 'SANGAT berhenti menjadi jahat'
@Gilles: Saya tidak tahu apa-apa tentang itu Tramp, jadi pengubahan "hack" saya tidak perlu berlaku. Saya terutama memikirkan berbagai program manajer file yang memiliki item menu seperti "buka di editor". Meskipun ini berfungsi untuk membuat file terbuka, mereka biasanya rapuh dalam cara mereka membutuhkan file yang akan disalin, dimodifikasi, disalin kembali, dll pada file. Jika Anda tahu cara mengatasi keterbatasan Tramp@starcorn yang dikeluhkan dengan segala cara, tambahkan jawaban lain!
Caleb
1
Dengan Tramp, editor melakukan pekerjaannya, jadi ia tahu harus mendorong saat menyimpan dan sebagainya. Solusi yang ideal adalah membuat emacsserver dan ssh beroperasi, tetapi itu sulit. Dua solusi yang akan saya tawarkan adalah sshfs dan eshell, keduanya sudah disebutkan.
Gilles 'SO- stop being evil'
2

Atau Anda dapat membuka emacs, jalankan eshell, lalu cd ke mesin jarak jauh, seperti:

cd /hostname:~

Sekarang, jalankan perintah shell, navigasikan ke file yang Anda inginkan dan buka:

find-file filename
minaev
sumber
2

Saya pikir Tramp adalah yang Anda cari. Anda dapat menggunakan mode Dired untuk menelusuri direktori jarak jauh dan mencari file yang Anda inginkan.

Misalnya, jika saya mencari beberapa file di /etc/dalam mesin jarak jauh rem, saya akan melakukan hal berikut:

  • Buka emacs
  • memukul C-x C-f
  • hapus path yang sudah ada
  • ketik /rem:/etc/dan tekan enter.

Anda akan mendapatkan output seperti ini:

/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

Kemudian Anda dapat menggunakan mis. Tombol panah untuk menemukan file yang ingin Anda edit. Tekan enter ketika kursor berada pada file untuk mengeditnya.

ph0t0nix
sumber