Vedi anche la docstring per la variabile tramp-methods
. Questa parte sembrerebbe notare:
tramp-remote-shell
questa specifica la shell utilizzare sull'host remoto. Questo DEVE essere una shell di tipo Bourne. Normalmente non è necessario impostare questo a qualsiasi valore diverso da "/ bin/sh": Tramp vuole utilizzare una shell che groks espansione della tilde, ma può cercare per esso. Si noti inoltre che "/ bin/sh" esiste su tutti Unixen, questo potrebbe non essere vero per il valore che si decide di utilizzare. Sei stato avvisato.
Edit:
Quindi, ecco un modo si potrebbe creare un nuovo metodo basato su un uno ("SCPC" in questo esempio) esistente e quindi dare il metodo personalizzato un diverso shell remota :
(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)))
si noti che in Emacs 23 (Tramp 2.1.20), questa struttura è stato chiamato tramp-remote-sh
. In Emacs 24 (Tramp 2.2.3-24.1) è stato modificato in tramp-remote-shell
.
E sto indovinando che è possibile utilizzare questo metodo per impostazione predefinita per il tuo host specificato con questo:
(add-to-list
'tramp-default-method-alist
(list "\\`myhost\\'" nil "android"))
Sembra che imposta la shell per tutti gli accessi tramite un determinato metodo (ad es. Ssh). C'è un modo per impostare questo per-host? –
Probabilmente si desidera aggiungere un nuovo metodo che utilizza il vagabondo-remote-shell necessaria, ma è identico al metodo si sta basando su, e quindi utilizzare che per l'accesso l'ospite in questione. – phils
Vedere anche la variabile 'tramp-default-method-alist', per mappare gli host ai metodi. – phils