2009-08-28 33 views
36

Tôi tự hỏi nếu có ai ngoài đó sử dụng ssh qua vỏ emacs. Tôi có thể kết nối với máy từ xa nhưng tôi không thể mở các tập tin để xem/chỉnh sửa với các emacs bằng cách sử dụng 'emacs filename' như là "Terminal type" câm "không đủ mạnh để chạy các emacs '(bình thường emacs sẽ mở trong giao diện điều khiển khi kết nối thông qua thiết bị đầu cuối).ssh qua vỏ emacs?

Đây có phải là một ý tưởng tồi khi cố gắng sử dụng các emacs theo cách như vậy, hoặc điều này có thể xảy ra với một vài bản sửa lỗi không? Cảm ơn nhiều!

Trả lời

14

Một vài ý tưởng

  • Nguồn bashrc một cách rõ ràng qua . ~/.bashrc và/hoặc sắp xếp lại các file init bash của bạn và ~/.profile để điều này được nạp bên trong vỏ emacs; sau đó chạy ssh bên trong vỏ Emacs hoạt động tốt
  • Sử dụng emacs cụ thể Tramp mode để truy cập tệp từ xa qua ssh bên trong Emacs cục bộ của bạn - điều này rất hữu ích nếu bạn chỉ cần cập nhật/chạm/chỉnh sửa tệp từ xa để không cần phải mở một emacs từ xa bên trong phiên ssh bắt đầu từ bên trong emacs địa phương của bạn.
+0

Tôi sẽ phải kiểm tra chế độ Tramp này, âm thanh tuyệt vời. Cảm ơn! – hatmatrix

+1

Có - người hỏi khác đánh tôi với câu trả lời đầu tiên sau một hoặc hai phút nhưng tramp là những gì bạn đang theo dõi nếu bạn chỉ muốn chỉnh sửa nhanh một tệp hoặc hai máy chủ lưu trữ khác. Nó đơn giản sao chép nó vào máy tính của bạn và gửi các phiên bản cập nhật trở lại thông qua scp - mà không cần phải làm điều đó một cách rõ ràng. Điều đó có thể được nhiều hơn nữa leightweight hơn xuất khẩu một phiên X11 (mà ông đúng chỉ ra như là một lựa chọn khác). Ngoài ra, tramp là rất nhiều theo dõi để ange ftp cũ ông đã đề cập. –

+0

Có, tôi nhận thấy rằng tramp supercedes ange ftp (theo các chủ đề khác). Và các kết nối X11 của tôi dường như rất chậm chạp nên việc đi lại chắc chắn tốt hơn cho tình huống của tôi. Cảm ơn bạn. – hatmatrix

6

Bạn có thể sử dụng ssh x forwarding để chạy một emacs từ xa và hiển thị nó trên máy tính cục bộ.
Tôi sử dụng Xming X Server khi tôi đang sử dụng Windows

Bạn có thể gắn the remote filesystem with ssh và mở cục bộ như bình thường.
Đối với điều này tôi sử dụng ExpanDrive (ứng dụng thương mại) khi trên Windows

Bạn có thể sử dụng emacs Ange ftp over ssh nó có thể mở tập tin từ xa qua ftp và ssh.
tôi sử dụng điều này với cygwin khi trên Windows

+0

cảm ơn bạn! -rất hữu ích – hatmatrix

16

Emacs có chế độ cụm từ là trình giả lập thiết bị đầu cuối đầy đủ, bạn có thể chạy các emacs trong các emac. Mọi thứ bạn chạy trên thiết bị đầu cuối đều sẽ chạy trong chế độ có thời hạn là

Cũng có chế độ tramp có thể mở tệp qua ssh.


/scp:[email protected]#port:/ 

nó sẽ truyền tệp qua lại. bạn chỉ cần chỉnh sửa chúng khi bạn chỉnh sửa các tệp cục bộ.

Không cần chuyển tiếp x11 hoặc các hành vi khác.

+0

Cảm ơn - có vẻ như có nhiều tùy chọn: shell, eshell và thuật ngữ ... bạn thích cái nào hơn? Tôi đã googled một chút và có vẻ như 'vỏ' được sử dụng rộng rãi nhất ... – hatmatrix

+0

vỏ và eshell mặc dù tên của họ không phải là vỏ thực sự. họ chỉ đọc và viết cho một quá trình. nhưng thuật ngữ, mặt khác là một bộ mô phỏng thiết bị đầu cuối giống như thiết bị đầu cuối trên osx hoặc xterm trên linux. bạn thậm chí có thể chạy các công cụ ncurses trong đó mà bạn không thể làm trong trình bao. sử dụng thuật ngữ nếu bạn muốn sống trong các emacs và sử dụng shell nếu bạn muốn chạy các lệnh nhanh và vẫn sử dụng một terminal (xterm etc ..) –

+2

Ah, vâng - có vẻ là một số hiểu về thuật ngữ không có tài liệu eshell hiện nhưng nó xuất hiện để xử lý phiên ssh của tôi tốt hơn so với vỏ ... nhưng emacs trong emacs? "emacs: Loại thiết bị đầu cuối eterm-màu không được xác định." nói điều gì đó về việc phải thay đổi biến TERM, nhưng nếu tôi đọc lên nó nhiều hơn tôi cho rằng nó có thể được thực hiện? Đáng sợ! – hatmatrix

38

Nó có thể không được rõ ràng về cái nhìn đầu tiên, nhưng eshell, vỏ đó là thực hiện trong Emacs Lisp hoạt động tốt với tramp:

Welcome to the Emacs shell 

~ $ uname -a 
Linux local-machine 2.6.30-1-686 #1 SMP Thu Jul 30 14:45:30 UTC 2009 i686 GNU/Linux 
~ $ cd /ssh:[email protected]:~ 
/ssh:[email protected]:/home/user $ uname -a 
Linux remote-machine 2.6.18-6-686 #1 SMP Thu Aug 20 21:56:59 UTC 2009 i686 GNU/Linux 
/ssh:[email protected]:/home/user $ 
+1

Wow, trông khá tuyệt vời. Emacs có hai lựa chọn vỏ quá nhiều! – hatmatrix

+2

@hillu Tôi chỉ ... bị mắc kẹt trên ghế của mình! Ngay bây giờ, tôi đã sử dụng tramp để truy cập các tệp từ xa chỉ trong một giờ hoặc lâu hơn. Cảm ơn bài viết của bạn, tôi đã khởi chạy eshell để đặt trực tiếp cho tôi "vào" máy từ xa. Và bạn biết những gì? bạn thậm chí có thể sao chép các tập tin từ máy này sang máy khác dễ dàng như gọi lệnh '' 'cp'''. TUYỆT VỜI!! –

+2

và sau đó chúng tôi có thể tìm và chỉnh sửa tệp bình thường! 'Cx Cf' hoạt động, và một số elisp như' tìm-file' quá :) http://wikemacs.org/wiki/Eshell#Built-In_Commands – Ehvince

1

Tôi đã đấu tranh với Xming, mà làm việc, nhưng như tôi kết nối internet không phải là nhanh nhất tôi phải chờ đợi hơn 30 giây trước khi emacs hoặc bất kỳ ứng dụng X thậm chí xuất hiện. Ngoài ra, cuộn qua bộ đệm sau khi nó đã được mở sẽ đóng băng theo thời gian => Rất khó chịu

Hãy thử No machine (máy chủ nxserver-freenx/máy khách). Có các máy chủ phiên bản miễn phí, tuyệt đối là giải pháp tốt nhất và nhanh nhất khi bạn muốn kết nối với một hộp Linux và sử dụng xterm và emacs trên X. Nó xuất hiện ngay lập tức và đáp ứng rất nhanh.Thậm chí trên một kết nối rất chậm :-) Khách hàng có sẵn cho Windows, Mac OS, Linux

+0

thú vị - sẽ kiểm tra tại một số điểm, cảm ơn ~ – hatmatrix