Xem thêm docstring cho biến số tramp-methods
. Phần này sẽ xuất hiện đáng chú ý:
tramp-remote-shell
này quy định các vỏ để sử dụng trên các máy chủ từ xa. Điều này PHẢI là một vỏ giống như Bourne. Thông thường, không cần thiết phải đặt giá trị này thành bất kỳ giá trị nào khác "/ bin/sh": Tramp muốn sử dụng trình bao mở rộng dấu ngã, nhưng có thể tìm kiếm cho nó. Cũng lưu ý rằng "/ bin/sh" tồn tại trên tất cả Unixen, điều này có thể không đúng đối với giá trị mà bạn quyết định sử dụng. Bạn đã được cảnh báo.
Edit:
Vì vậy, đây là một cách bạn có thể tạo ra một phương pháp mới dựa trên hiện có ("SCPC" trong ví dụ này), và sau đó cung cấp cho các phương pháp tùy chỉnh một remote shell khác nhau :
(require 'tramp)
(let* ((base-method (cdr (assoc "scpc" tramp-methods)))
(new-method (copy-tree base-method))
(rshell (assq 'tramp-remote-shell new-method)))
(setcdr rshell "/system/bin/sh")
(add-to-list 'tramp-methods (cons "android" new-method)))
Lưu ý rằng trong Emacs 23 (Tramp 2.1.20), thuộc tính này được đặt tên tramp-remote-sh
. Trong Emacs 24 (Tramp 2.2.3-24.1) nó đã được đổi thành tramp-remote-shell
.
Và tôi đoán rằng bạn có thể sử dụng phương pháp này theo mặc định cho máy chủ định của bạn với điều này:
(add-to-list
'tramp-default-method-alist
(list "\\`myhost\\'" nil "android"))
Dường như thiết lập trình bao cho tất cả quyền truy cập thông qua một phương thức cụ thể (ví dụ: ssh). Có cách nào để thiết lập này cho mỗi máy chủ? –
Bạn có thể muốn thêm một phương pháp mới sử dụng tramp-remote-shell cần thiết nhưng nếu không giống với phương pháp bạn đang dựa trên nó, và sau đó sử dụng phương pháp đó để truy cập máy chủ được đề cập. – phils
Xem thêm biến 'tramp-default-method-alist', để ánh xạ các host thành các phương thức. – phils