Tôi có xu hướng chạy vỏ của tôi trong các emacs, nhưng khi tôi sử dụng nó để ssh vào một máy tính khác, điều này sẽ phá vỡ hoàn thành tab. Có cách nào để sửa lỗi này?Vỏ từ xa Emacs
Trả lời
Hãy thử:
M-x cd /hostname:/current/path/in/the/shell
Điều đó sẽ thiết lập ange-ftp (hoặc lang thang), và sau đó hoàn thành TAB cho đường dẫn nên hoạt động đúng cho vỏ đó - cho đến khi bạn đăng nhập vào một máy tính khác nhau.
Bạn có thể thiết lập một bộ lọc quá trình tình báo thông tin để nhận ra khi bạn gõ ssh
để làm điều đó cho bạn tự động, nhưng đó là khó khăn để có được quyền như nó phải trở lại khi bạn thoát khỏi phiên ssh
, nhưng không bị lừa bởi các ứng dụng khác của exit
.
Để có giải pháp tự động, tôi khuyên bạn nên tăng thêm the approach I personally use để giữ Emac được đồng bộ hóa với thư mục làm việc hiện tại của bộ đệm vỏ. Chỉ cần thêm một chút thông tin với tên máy chủ và sử dụng để đặt tên máy chủ và đường dẫn như được hiển thị ở trên.
Bạn có thể thử M-x ansi-term để lưu trữ trình bao nếu bạn nhận được hành vi không mong muốn bằng ánh xạ chính. Có nói rằng tôi không thể tái sản xuất các vấn đề mô tả của bạn trên thiết lập của bạn.
Tôi đã có một vấn đề tương tự tôi suy nghĩ và giải quyết nó bằng cách chỉnh sửa của tôi ~/.bash_login trên máy loại bỏ và thêm
export TERM=xterm
tôi sử dụng OS X và có vấn đề khi kết nối với Linux (Debian Lenny)
trong một chủ đề khác, ai đó đã đề cập đến eshell mà tôi chưa bao giờ sử dụng nhưng tôi đã thử nó với SSH và tất cả các loại tích hợp tốt đẹp đang xảy ra. Đã đến lúc học eshell.
Tôi vừa viết một chức năng nhỏ để mở vỏ trên máy chủ từ xa. Cuộc gọi cd
trước shell
được hoàn thành tab.
Điều này có thể khác với bạn muốn, vì nó mở một vỏ mới thay vì ssh'ing trong trình bao cục bộ. Ngoài ra, bạn có thể xem xét việc hack các emacs Directory Tracking (hoặc xem ai khác có).
(defun remote-shell (&optional host)
"Open a remote shell to a host."
(interactive)
(with-temp-buffer
(let ((host (if host host (read-string "Host: "))))
(cd (concat "/scp:" host ":"))
(shell (concat "*" host "*")))))
(defun myserver-shell() (interactive) (remote-shell "myserver"))
M-x shell được gọi trong bộ đệm A sẽ chuyển sang bộ đệm vỏ B; thường là vỏ. Không ngạc nhiên khi nó tạo B nếu cần. Một tiền tố arg sẽ làm cho nó để yêu cầu tên B. Nếu A đang xem một cái gì đó trên một máy chủ từ xa thì vỏ sẽ được chạy trên máy chủ từ xa. Nhưng chỉ khi nó không thể tìm thấy một B. hiện tại Tại thời điểm đó tên tập tin hoàn thành sẽ làm việc.
Có một số lưu ý về cách sửa đổi nội dung này trong wiki emacs. Xem ví dụ hàm my-shell trong this section, sẽ mở rộng tên mặc định cho B để các tệp từ xa nhận được các shell từ xa. Tôi làm điều tương tự bằng cách advising the shell function.
Hoàn thành tự động tên tệp sẽ hoạt động tốt. Lệnh tự động hoàn thành? Ít hơn. Đối với tôi nó chặn emacs và sau đó không thực sự làm việc.
Tôi sử dụng dired để truy cập máy từ xa và mở vỏ ở đó.
Dưới đây là các chức năng tôi sử dụng, thực hiện và sửa đổi từ Tikhon Jelviss' emacs configuration:
(defun anr-shell (buffer)
"Opens a new shell buffer where the given buffer is located."
(interactive "sBuffer: ")
(pop-to-buffer (concat "*" buffer "*"))
(unless (eq major-mode 'shell-mode)
(dired buffer)
(shell buffer)
(sleep-for 0 200)
(delete-region (point-min) (point-max))
(comint-simple-send (get-buffer-process (current-buffer))
(concat "export PS1=\"\033[33m" buffer "\033[0m:\033[35m\\W\033[0m>\""))))
Ví dụ:
(anr-shell "/[email protected]#2222:/vagrant/")
- 1. ssh qua vỏ emacs?
- 2. Vỏ kiểu ido Emacs
- 3. Cách thoát khỏi vỏ emacs
- 4. Nhúng vỏ Python từ xa vào một ứng dụng
- 5. Chạy Emacs Điều khiển từ xa giữa nhiều máy
- 6. Làm cách nào để phát triển từ xa với Emacs?
- 7. Sao chép/Dán trong vỏ anac emacs ansi
- 8. Làm thế nào để giết một quá trình từ xa mà không giết chết vỏ (C-c C-c cũng giết chết vỏ ...)
- 9. Làm thế nào để tìm kiếm ngược trong vỏ emacs?
- 10. vỏ Cygwin trong Emacs - đầu ra bị hỏng?
- 11. Đã xảy ra sự cố với vỏ Emacs
- 12. Làm thế nào để chạy vỏ HBase với cụm từ xa
- 13. Lập trình từ xa
- 14. Vỏ Erlang từ trình duyệt?
- 15. Làm mới thư mục từ xa trong Chế độ Emacs Tramp
- 16. vỏ tiêu đề vỏ linux
- 17. từ xa được xây dựng với IntelliJ
- 18. Sử dụng stringify từ vỏ v8
- 19. Điều khiển đèn LED Android từ vỏ
- 20. Sử dụng Squeak từ một vỏ
- 21. Làm cách nào để mở tệp từ xa qua HTTP bằng Emac?
- 22. Chỉnh sửa gốc của tập tin từ xa bằng cách sử dụng emacs tramp từ phiên ssh
- 23. emacs loại bỏ tất cả các mã màu ansi trong các vỏ
- 24. Bluetooth từ xa
- 25. ray link_to: từ xa
- 26. tải .emacs từ url
- 27. chạy lệnh trên máy từ xa với tramp?
- 28. Cách nhận hỗ trợ cho '✖' và các mục tương tự trong bộ đệm vỏ Emacs?
- 29. Sử dụng nhiều vỏ Python trong chế độ python của Emacs bằng Python hoặc IPython
- 30. Emacs: chuyển đối số tới vỏ Python kém trong khi đánh giá bộ đệm
bạn có thể xây dựng? Bạn có mong đợi hoàn thành tên tệp trên một đường dẫn cụ thể cho máy (ví dụ: đĩa cục bộ) không? Lệnh nói chung? –