Làm thế nào để ssh đến máy chủ từ xa và sử dụng emacs cục bộ để chỉnh sửa tập tin?


8

Có cách nào để sử dụng các emacs được cài đặt máy tính cục bộ của tôi để truy cập các tệp từ xa tôi có trong một máy chủ từ xa không? Tôi đã googled và phát hiện ra rằng tôi nên sử dụng TrampMode tuy nhiên tôi cần phải biết đường dẫn tệp chính xác. Không có cách nào để tôi mở kết nối ssh đến máy chủ từ xa và từ đó mở các tệp với các emacs cục bộ trong máy tính của tôi?

Câu trả lời:


5

Có nhiều cách khác nhau để làm điều này, nhưng nói chung bạn sẽ giải quyết vấn đề này một cách ngược lại. Sao chép cấu hình emacs của bạn vào máy từ xa và sử dụng emacs cục bộ vào các tệp bạn đang chỉnh sửa.

"Nhiều cách khác nhau để làm điều này" sẽ được chia thành hai loại. Đầu tiên sẽ là cách gắn ổ đĩa từ xa cục bộ thông qua một cái gì đó như sshfs, một số hệ thống tệp cầu chì, samba, nfs hoặc bất kỳ số lượng hệ thống lắp đặt nào khác để đưa quyền truy cập cấp tệp vào máy của bạn. Thứ hai sẽ là các chương trình khác nhau cho phép bạn đăng nhập và duyệt một hệ thống từ xa, sau đó vận hành trên các tệp bằng cách chuyển một bản sao của chúng sang tệp tạm thời cục bộ, chỉnh sửa nó, sau đó chuyển lại. Một số chương trình làm cho quá trình đó trông khá liền mạch, nhưng đó là một hack.


1
Một số chương trình làm cho quá trình đó trông khá liền mạch, nhưng đó là một bản hack. Đây không phải là hack, đó là cách làm việc tự nhiên với các tệp từ xa.
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles: Tôi không biết gì Tramp, vì vậy, việc buộc tội "hack" của tôi không cần phải áp dụng. Tôi đặc biệt nghĩ về các chương trình quản lý tập tin khác nhau có các mục menu như "mở trong trình chỉnh sửa". Mặc dù chúng hoạt động để mở tệp, nhưng chúng thường dễ vỡ theo cách chúng yêu cầu tệp được sao chép, sửa đổi, sao chép lại, v.v. Tệp trung gian lưu trước khi đóng trình chỉnh sửa thường không được đẩy ngược dòng khiến chúng trở nên khó xử trên các tập tin. Nếu bạn biết một cách xung quanh những hạn chế trong Tramp@starcorn bị phàn nàn bởi tất cả có nghĩa là thêm một câu trả lời khác!
Caleb

1
Với Tramp, trình soạn thảo đang thực hiện công việc, vì vậy nó biết đẩy khi lưu và cứ thế. Giải pháp lý tưởng là làm cho emacsserver và ssh tương tác với nhau, nhưng điều đó thật khó. Hai cách giải quyết tôi sẽ cung cấp là sshfs và eshell, cả hai đã được đề cập.
Gilles 'SO- ngừng trở nên xấu xa'

2

Hoặc bạn có thể mở emacs, chạy eshell, sau đó cd vào máy từ xa, như:

cd /hostname:~

Bây giờ, chạy các lệnh shell, điều hướng đến tệp bạn muốn và mở nó:

find-file filename

2

Tôi nghĩ rằng Tramp là những gì bạn đang tìm kiếm. Bạn có thể sử dụng chế độ Dired để duyệt các thư mục từ xa và tìm tệp bạn muốn.

Ví dụ: nếu tôi đang tìm một số tệp trong /etc/một máy từ xa rem, tôi sẽ làm như sau:

  • Mở emacs
  • đánh C-x C-f
  • xóa đường dẫn đã có
  • /rem:/etc/và nhấn enter.

Bạn sẽ nhận được một đầu ra như thế này:

/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

Sau đó, bạn có thể sử dụng ví dụ các phím mũi tên để tìm tệp bạn muốn chỉnh sửa. Nhấn enter khi con trỏ ở trên tệp để chỉnh sửa nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.