Zobacz także docstring dla zmiennej tramp-methods
. Ta część wydaje się godne uwagi:
tramp-remote-shell
to określa powłokę do używania na zdalnym komputerze. Ten MUSI być powłoką Bourne'a. Zazwyczaj nie jest konieczne, aby ustawić tę wartość na wartość inną niż "/ bin/sh": Tramp chce uzyskać użyć powłoki, która rozszerza tyldę, ale może wyszukać dla niej wartość . Zauważ też, że "/ bin/sh" istnieje na wszystkich Uniksach, to może nie być prawdziwe dla wartości, którą zdecydujesz się użyć. Zostałeś ostrzeżony.
Edit:
Więc oto sposób można utworzyć nową metodę opartą na istniejącym jednego („SCPC” w tym przykładzie), a następnie nadać niestandardową metodę inną zdalną powłokę :
(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)))
pamiętać, że Emacs 23 (Tramp 2.1.20), ta właściwość została nazwana tramp-remote-sh
. W Emacs 24 (Tramp 2.2.3-24.1) został zmieniony na tramp-remote-shell
.
I zgaduję, że można użyć tej metody domyślnie do określonego hosta z tym:
(add-to-list
'tramp-default-method-alist
(list "\\`myhost\\'" nil "android"))
Wygląda na to, że ustawia powłokę dla wszystkich uprawnień za pośrednictwem danej metody (np. Ssh). Czy istnieje sposób na ustawienie tego na hosta? –
Prawdopodobnie chcesz dodać nową metodę, która używa niezbędnej powłoki-tramp-remote, ale poza tym jest identyczna z metodą, na której ją bazujesz, a następnie użyć jej do uzyskania dostępu do hosta, o którym mowa. – phils
Zobacz także zmienną 'tramp-default-method-alist' do mapowania hostów na metody. – phils