tramp-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: tramp (2.2.13.25.2); How to let shell over TRAMP read "~/.bash_histo


From: Fan_Yang
Subject: Re: tramp (2.2.13.25.2); How to let shell over TRAMP read "~/.bash_history" as input ring?
Date: Sat, 20 Jul 2019 21:32:48 +0800

Hi Bruno, thanks a lot for your solution!  This fixes my issue.

BTW, recently I am really obsessed with Emacs things :P  
Your solution leads me to learn functions like "set-process-sentinel” and 
"advice-add”.

Thanks again for your kind responds,
Fan

> 在 2019年7月20日,19:32,Bruno Barbier <address@hidden> 写道:
> 
> 
> Hi Fan,
> 
> Fan Yang <address@hidden> writes:
> 
>> Hi Bruno,
>> 
>> Thanks for your reply!  Searching command history saves a lot of typing and 
>> quickens my
>> workflows,  I probably will still head for a solution. 
>> 
>> Some more questions, if I may,
>> 1. Should I attribute this issue to TRAMP or to shell-mode?
> 
> It looks to me that shell-mode doesn't support remote shell history.
> Maybe you should file an Emacs bug to request that feature.
> 
> 
>> 2. Where should I start, is there any suggestions?
> 
> You could try to use/adapt the code below. It (mostly) works for me (it
> doesn't work when Emacs reuses an existing buffer, and probably in other
> cases too).
> 
> Bruno.
> 
> 
> 
>    (defun hack:history-name-for-path (p)
>      "Compute a history filename for this remote path P.
>    Assume the path ~/.remote-histories exists."
>      (concat (file-name-as-directory "~/.remote-histories")
>              (replace-regexp-in-string 
>               ":" "-" 
>               (replace-regexp-in-string 
>                "/" "-" 
>                (file-remote-p p)))
>              ))
> 
>    (defun hack:around-shell-mode (orig-fun &rest args)
>      "Advice around shell-mode.
>    When in a remote shell,
>       1. identify the history file for this buffer,
>       2. read the old history,
>       3. tell emacs to save that history when done.
>    "
>      (let ((rh-filename
>             (let ((p default-directory))
>               (when (file-remote-p p)
>                 (hack:history-name-for-path p)))))
>        (apply orig-fun args)
>        (when rh-filename
>          (message "HACK: Redirect (remote) history for shell-mode %s at %s: 
> %s" 
>                   (current-buffer) default-directory rh-filename)
>          (setq-local comint-input-ring-file-name rh-filename)
>          (set-process-sentinel (get-buffer-process (current-buffer))
>                                                   
> #'shell-write-history-on-exit)
>          (comint-read-input-ring t)
>          )))
>    (advice-add 'shell-mode :around 'hack:around-shell-mode)
> 
>> 
>> I am still going to investigate this issue a little bit, any 
>> suggestion/solution is appreciated!
>> 
>> Thanks in advance,
>> Fan
>> 
>> ----- Original Message -----
>> From: "Bruno Barbier" <address@hidden>
>> To: "我" <address@hidden>
>> Cc: "tramp-devel" <address@hidden>
>> Sent: Saturday, July 20, 2019 5:20:09 AM
>> Subject: Re: tramp (2.2.13.25.2); How to let shell over TRAMP read 
>> "~/.bash_history" as input ring?
>> 
>> Hi Fan,
>> 
>> 
>> Fan Yang <address@hidden> writes:
>>> ...
>> 
>> Sorry, I'm now thinking I've sent you in the wrong direction.  You
>> should probably restore tramp-histfile-override as it was.
>> 
>>> 
>>> Do you know
>>> 1. Why "process-command" of my remote "*shell*" buffer is "/bin/sh" 
>>>   even though "/bin/bash" is used?
>> 
>> Just a guess: emacs opens an 'sh' shell, then, in that shell, it runs
>> 'ssh' to open a shell on the remote, and, 'ssh' opens your login shell
>> ('bash'). The process-command gives the local process (/bin/sh); it
>> knows nothing about the remote shell, opened by ssh.
>> 
>> But it's just a guess really.
>> 
>> 
>>> 2. What is your practice or workflow to use shell at remote machine
>>>   with command history awareness?
>> 
>> I'm using shells (remote or not) all the time. I don't use history
>> though, sorry.
>> 
>> I'm using M-n, M-p for the "live current session" history.  For any
>> command that matters accross different sessions, I just take notes, and
>> copy/paste from my notes (org mode).
>> 
>> The variable comint-input-ring-file-name looks like the way to go for
>> what you want to do.  I just couldn't figure out how to make it work,
>> but I didn't try that hard as I don't need it.
>> 
>> Sorry,
>> 
>> Bruno
>> 
>> 
>> 
>>> Thanks~
>>> 
>>> Fan
>>> 
>>> ----- Original Message -----
>>> From: "Bruno Barbier" <address@hidden>
>>> To: "我" <address@hidden>, "tramp-devel" <address@hidden>
>>> Sent: Friday, July 19, 2019 1:51:23 AM
>>> Subject: Re: tramp (2.2.13.25.2); How to let shell over TRAMP read 
>>> "~/.bash_history" as input ring?
>>> 
>>> Hi Fan,
>>> 
>>> Fan Yang <address@hidden> writes:
>>> 
>>>> Hi,
>>>> 
>>>> What I wish:
>>>> 1. Use bash at a remote server.
>>>> 2. During the shell session, I want to use 
>>>> `(comint-history-isearch-backward-regexp)' to search command history that 
>>>> in  "~/.bash_history" (the bash history file at remote).
>>>> 3. When the shell ends (i.e. bash exit), I want to have the commands I 
>>>> have input appended to "~/.bash_history" (the bash history file at remote).
>>>> 
>>>> However, when I `M-x shell' at remote
>>>> 1. The input ring is empty.
>>>> 2. The input won't append to "~/.bash_history" when exit.
>>>> 
>>>> Do you have any suggestions (or solutions)?
>>>> 
>>> 
>>> Did you try tramp-histfile-override ? (I didn't try it)
>>> 
>>> Bruno
>>> 
>>>> Best Regards,
>>>> Fan
>>>> 
>>>> 
>>>> Emacs  : GNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21)
>>>> of 2017-09-23, modified by Debian
>>>> Package: tramp (2.2.13.25.2)
>>>> 
>>>> current state:
>>>> ==============
>>>> (setq
>>>> backup-by-copying nil
>>>> backup-by-copying-when-linked nil
>>>> backup-by-copying-when-mismatch t
>>>> backup-by-copying-when-privileged-mismatch 200
>>>> backup-directory-alist nil
>>>> file-name-handler-alist 
>>>> '(("\\(?:\\.dz\\|\\.txz\\|\\.xz\\|\\.lzma\\|\\.lz\\|\\.g?z\\|\\.\\(?:tgz\\|svgz\\|sifz\\)\\|\\.tbz2?\\|\\.bz2\\|\\.Z\\)\\(?:~\\|\\.~[-[:alnum:]:#@^._]+\\(?:~[[:digit:]]+\\)?~\\)?\\'"
>>>>  . jka-compr-handler)
>>>>                       ("\\.gpg\\(~\\|\\.~[0-9]+~\\)?\\'" . 
>>>> epa-file-handler)
>>>>                       ("\\`/[^/]*\\'" . tramp-completion-file-name-handler)
>>>>                       ("\\`/[^/|:][^/|]*:" . tramp-file-name-handler)
>>>>                       ("\\`/:" . file-name-non-special))
>>>> password-cache t
>>>> password-cache-expiry 16
>>>> remote-file-name-inhibit-cache 10
>>>> shell-prompt-pattern "^[^#$%>\n]*[#$%>] *"
>>>> tramp-actions-before-shell '((tramp-login-prompt-regexp tramp-action-login)
>>>>                          (tramp-password-prompt-regexp 
>>>> tramp-action-password)
>>>>                          (tramp-wrong-passwd-regexp 
>>>> tramp-action-permission-denied)
>>>>                          (shell-prompt-pattern tramp-action-succeed)
>>>>                          (tramp-shell-prompt-pattern tramp-action-succeed)
>>>>                          (tramp-yesno-prompt-regexp tramp-action-yesno)
>>>>                          (tramp-yn-prompt-regexp tramp-action-yn)
>>>>                          (tramp-terminal-prompt-regexp 
>>>> tramp-action-terminal)
>>>>                          (tramp-process-alive-regexp 
>>>> tramp-action-process-alive))
>>>> tramp-actions-copy-out-of-band '((tramp-password-prompt-regexp 
>>>> tramp-action-password)
>>>>                              (tramp-wrong-passwd-regexp 
>>>> tramp-action-permission-denied)
>>>>                              (tramp-copy-failed-regexp 
>>>> tramp-action-permission-denied)
>>>>                              (tramp-process-alive-regexp 
>>>> tramp-action-out-of-band))
>>>> tramp-adb-connect-if-not-connected nil
>>>> tramp-adb-method "adb"
>>>> tramp-adb-program "adb"
>>>> tramp-adb-prompt "(decode-coding-string (base64-decode-string 
>>>> \"XlwoPzpbWzpkaWdpdDpdXSp8P1wpP1woPzpbWzphbG51bTpdGztbXSpAW1s6YWxudW06XV0qW14j\nXCRdKlwpP1sjXCRdW1s6c3BhY2U6XV0=\")
>>>>  'raw-text)"
>>>> tramp-auto-save-directory nil
>>>> tramp-awk-coding-test "test -c /dev/zero && od -v -t x1 -A n </dev/null && 
>>>> busybox awk '{}' </dev/null"
>>>> tramp-awk-decode "busybox awk '\\\nBEGIN {\n  b64 = 
>>>> \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"\n}\n{\n
>>>>   for (i=1; i<=length($0); i++) {\n    c=index(b64, substr($0,i,1))\n    
>>>> if(c--) {\n      for(b=0; b<6; b++) {\n        o=o*2+int(c/32); 
>>>> c=(c*2)%%64\n        if(++obc==8) {\n          if (o) {\n            
>>>> printf \"%%c\", o\n          } else {\n            system(\"dd 
>>>> if=/dev/zero bs=1 count=1 2>/dev/null\")\n          }\n          obc=0; 
>>>> o=0\n        }\n      }\n    }\n  }\n}'"
>>>> tramp-awk-encode "od -v -t x1 -A n | busybox awk '\\\nBEGIN {\n  b64 = 
>>>> \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"\n  
>>>> b16 = \"0123456789abcdef\"\n}\n{\n  for (c=1; c<=length($0); c++) {\n    
>>>> d=index(b16, substr($0,c,1))\n    if (d--) {\n      for (b=1; b<=4; b++) 
>>>> {\n        o=o*2+int(d/8); d=(d*2)%%16\n        if (++obc==6) {\n          
>>>> printf substr(b64,o+1,1)\n          if (++rc>75) { printf \"\\n\"; rc=0 
>>>> }\n          obc=0; o=0\n        }\n      }\n    }\n  }\n}\nEND {\n  if 
>>>> (obc) {\n    tail=(obc==2) ? \"==\\n\" : \"=\\n\"\n    while (obc++<6) { 
>>>> o=o*2 }\n    printf \"%%c\", substr(b64,o+1,1)\n  } else {\n    
>>>> tail=\"\\n\"\n  }\n  printf tail\n}'"
>>>> tramp-backup-directory-alist nil
>>>> tramp-bluez-discover-devices-timeout 60
>>>> tramp-bug-report-address "address@hidden"
>>>> tramp-cache-data '((["scp" nil "val17" nil nil] ("uname" "Linux 
>>>> 4.15.0-36-generic")
>>>>                 ("locale" "LC_ALL=en_US.utf8") ("test" "test")
>>>>                 ("remote-path"
>>>>                  ("/bin" "/usr/bin" "/sbin" "/usr/sbin" "/usr/local/bin"
>>>>                   "/usr/local/sbin")
>>>>                  )
>>>>                 ("remote-shell" "/bin/sh") ("~" "/home/yf") ("file-exists" 
>>>> "test -e")
>>>>                 ("ls" "/bin/ls --color=never") ("ls-dired" t) ("stat" nil)
>>>>                 ("perl-file-spec" t) ("perl-cwd-realpath" t) ("perl" 
>>>> "\\perl")
>>>>                 ("id" "/usr/bin/id") ("gid-integer" 1012) ("gid-string" 
>>>> "yf")
>>>>                 ("readlink" "\\readlink"))
>>>>                (["ssh" "yf" "val17" nil nil] ("uname" "Linux 
>>>> 4.15.0-36-generic")
>>>>                 ("locale" "LC_ALL=en_US.utf8") ("test" "test")
>>>>                 ("remote-path"
>>>>                  ("/bin" "/usr/bin" "/sbin" "/usr/sbin" "/usr/local/bin"
>>>>                   "/usr/local/sbin")
>>>>                  )
>>>>                 ("remote-shell" "/bin/sh") ("~" "/home/yf") ("file-exists" 
>>>> "test -e")
>>>>                 ("ls" "/bin/ls --color=never") ("ls-dired" t) ("stat" nil)
>>>>                 ("perl-file-spec" t) ("perl-cwd-realpath" t) ("perl" 
>>>> "\\perl")
>>>>                 ("id" "/usr/bin/id") ("gid-integer" 1012) ("gid-string" 
>>>> "yf")
>>>>                 ("readlink" "\\readlink"))
>>>>                (["ssh" nil "val17" nil nil] ("uname" "Linux 
>>>> 4.15.0-36-generic")
>>>>                 ("locale" "LC_ALL=en_US.utf8") ("test" "test")
>>>>                 ("remote-path"
>>>>                  ("/bin" "/usr/bin" "/sbin" "/usr/sbin" "/usr/local/bin"
>>>>                   "/usr/local/sbin")
>>>>                  )
>>>>                 ("remote-shell" "/bin/sh") ("~" "/home/yf") ("file-exists" 
>>>> "test -e")
>>>>                 ("ls" "/bin/ls --color=never") ("ls-dired" t) ("stat" nil)
>>>>                 ("perl-file-spec" t) ("perl-cwd-realpath" t) ("perl" 
>>>> "\\perl")
>>>>                 ("id" "/usr/bin/id") ("gid-integer" 1012) ("gid-string" 
>>>> "yf")
>>>>                 ("readlink" "\\readlink"))
>>>>                (["scp" "yf" "val17" nil nil] ("first-password-request" t)
>>>>                 ("uname" "Linux 4.15.0-36-generic") ("locale" 
>>>> "LC_ALL=en_US.utf8")
>>>>                 ("test" "test")
>>>>                 ("remote-path"
>>>>                  ("/bin" "/usr/bin" "/sbin" "/usr/sbin" "/usr/local/bin"
>>>>                   "/usr/local/sbin")
>>>>                  )
>>>>                 ("remote-shell" "/bin/sh") ("~" "/home/yf") ("file-exists" 
>>>> "test -e")
>>>>                 ("ls" "/bin/ls --color=never") ("ls-dired" t) ("stat" nil)
>>>>                 ("perl-file-spec" t) ("perl-cwd-realpath" t) ("perl" 
>>>> "\\perl")
>>>>                 ("id" "/usr/bin/id") ("gid-integer" 1012) ("gid-string" 
>>>> "yf")
>>>>                 ("process-name" nil) ("process-buffer" nil))
>>>>                (nil ("locale" "en_US.utf8"))
>>>>                ("#<process *tramp/scp yf@val17*>" ("vector" ["scp" "yf" 
>>>> "val17" "" nil])
>>>>                 ("temp-file" "/tmp/tramp.3235D7G")
>>>>                 ("last-cmd-time" (23856 28362 396478 528000)) 
>>>> ("remote-shell" "/bin/sh")
>>>>                 ("chunksize" 0) ("connected" t)
>>>>                 ("scripts" ("tramp_perl_file_attributes")) ("device" (-1 . 
>>>> 1)))
>>>>                (["scp" "yf" "val17" "" nil] nil)
>>>>                (["scp" "yf" "val17" "/bin" nil]
>>>>                 ("file-directory-p" ((23856 28355 843559 379000) . t)))
>>>>                (["scp" "yf" "val17" "/usr/bin" nil]
>>>>                 ("file-directory-p" ((23856 28355 845226 668000) . t)))
>>>>                (["scp" "yf" "val17" "/sbin" nil]
>>>>                 ("file-directory-p" ((23856 28355 846813 984000) . t)))
>>>>                (["scp" "yf" "val17" "/usr/sbin" nil]
>>>>                 ("file-directory-p" ((23856 28355 848450 586000) . t)))
>>>>                (["scp" "yf" "val17" "/usr/local/bin" nil]
>>>>                 ("file-directory-p" ((23856 28355 850104 314000) . t)))
>>>>                (["scp" "yf" "val17" "/usr/local/sbin" nil]
>>>>                 ("file-directory-p" ((23856 28355 851705 732000) . t)))
>>>>                (["scp" "yf" "val17" "/local/bin" nil]
>>>>                 ("file-directory-p" ((23856 28355 853343 826000))))
>>>>                (["scp" "yf" "val17" "/local/freeware/bin" nil]
>>>>                 ("file-directory-p" ((23856 28355 854989 632000))))
>>>>                (["scp" "yf" "val17" "/local/gnu/bin" nil]
>>>>                 ("file-directory-p" ((23856 28355 856635 63000))))
>>>>                (["scp" "yf" "val17" "/usr/freeware/bin" nil]
>>>>                 ("file-directory-p" ((23856 28355 858330 69000))))
>>>>                (["scp" "yf" "val17" "/usr/pkg/bin" nil]
>>>>                 ("file-directory-p" ((23856 28355 859966 599000))))
>>>>                (["scp" "yf" "val17" "/usr/contrib/bin" nil]
>>>>                 ("file-directory-p" ((23856 28355 861678 458000))))
>>>>                (["scp" "yf" "val17" "/opt/bin" nil]
>>>>                 ("file-directory-p" ((23856 28355 863338 952000))))
>>>>                (["scp" "yf" "val17" "/opt/sbin" nil]
>>>>                 ("file-directory-p" ((23856 28355 864995 289000))))
>>>>                (["scp" "yf" "val17" "/opt/local/bin" nil]
>>>>                 ("file-directory-p" ((23856 28355 866638 18000))))
>>>>                (["scp" "yf" "val17" "/home/yf" nil]
>>>>                 ("file-exists-p" ((23856 28355 890076 798000) . t))
>>>>                 ("file-directory-p" ((23856 28355 892921 753000) . t))
>>>>                 ("file-attributes-integer"
>>>>                  ((23856 28356 5442 818000) t 10 1012 1012 (23856 26322) 
>>>> (23856 26259)
>>>>                   (23856 26259) 4096 "drwxr-xr-x" nil (40 . 1) (-1 . 1))
>>>>                  )
>>>>                 ("file-attributes-string"
>>>>                  ((23856 28362 401276 862000) t 10 "yf" "yf" (23856 26322) 
>>>> (23856 26259)
>>>>                   (23856 26259) 4096 "drwxr-xr-x" nil (40 . 1) (-1 . 1))
>>>>                  )
>>>>                 ("file-readable-p" ((23856 28362 401307 743000) . t)))
>>>>                (["scp" "yf" "val17" "/bin/bash" nil]
>>>>                 ("file-exists-p" ((23856 28362 385225 996000) . t)))
>>>>                ("#<process shell>" ("vector" ["scp" "yf" "val17" 
>>>> "/home/yf/" nil])
>>>>                 ("last-cmd-time" (23856 28362 470703 888000)) 
>>>> ("remote-shell" "/bin/sh")
>>>>                 ("chunksize" 0) ("connected" t))
>>>>                )
>>>> tramp-cache-data-changed t
>>>> tramp-cache-unload-hook '(#[nil "\300\301\302\"\207"
>>>>                         [remove-hook kill-emacs-hook 
>>>> tramp-dump-connection-properties] 3]
>>>>                       #[nil 
>>>> "\300\301\302\"\210\300\303\302\"\210\300\304\302\"\207"
>>>>                         [remove-hook before-revert-hook 
>>>> tramp-flush-file-function
>>>>                          eshell-pre-command-hook kill-buffer-hook]
>>>>                         3]
>>>>                       )
>>>> tramp-chunksize nil
>>>> tramp-color-escape-sequence-regexp "(decode-coding-string 
>>>> (base64-decode-string \"G1tbOzAtOV0rbQ==\") 'raw-text)"
>>>> tramp-completion-file-name-handler-alist '((file-name-all-completions .
>>>>                                         
>>>> tramp-completion-handle-file-name-all-completions)
>>>>                                        (file-name-completion .
>>>>                                         
>>>> tramp-completion-handle-file-name-completion)
>>>>                                        )
>>>> tramp-completion-file-name-regexp "\\`/[^/]*\\'"
>>>> tramp-completion-file-name-regexp-separate "\\`/\\([[][^]]*\\)?\\'"
>>>> tramp-completion-file-name-regexp-unified "\\`/[^/]*\\'"
>>>> tramp-completion-function-alist '(("fcp" (tramp-parse-shosts 
>>>> "~/.ssh/known_hosts")
>>>>                                (tramp-parse-sconfig "~/.ssh/config"))
>>>>                               ("psftp" (tramp-parse-shosts 
>>>> "~/.ssh/known_hosts")
>>>>                                (tramp-parse-sconfig "~/.ssh/config"))
>>>>                               ("pscp" (tramp-parse-shosts 
>>>> "~/.ssh/known_hosts")
>>>>                                (tramp-parse-sconfig "~/.ssh/config"))
>>>>                               ("plink" (tramp-parse-shosts 
>>>> "~/.ssh/known_hosts")
>>>>                                (tramp-parse-sconfig "~/.ssh/config"))
>>>>                               ("ksu" (tramp-parse-passwd "/etc/passwd"))
>>>>                               ("sudo" (tramp-parse-passwd "/etc/passwd"))
>>>>                               ("su" (tramp-parse-passwd "/etc/passwd"))
>>>>                               ("nc" (tramp-parse-hosts "/etc/hosts"))
>>>>                               ("telnet" (tramp-parse-hosts "/etc/hosts"))
>>>>                               ("sshx" (tramp-parse-shosts 
>>>> "~/.ssh/known_hosts")
>>>>                                (tramp-parse-sconfig "~/.ssh/config"))
>>>>                               ("ssh" (tramp-parse-shosts 
>>>> "~/.ssh/known_hosts")
>>>>                                (tramp-parse-sconfig "~/.ssh/config"))
>>>>                               ("rsync" (tramp-parse-shosts 
>>>> "~/.ssh/known_hosts")
>>>>                                (tramp-parse-sconfig "~/.ssh/config"))
>>>>                               ("scpx" (tramp-parse-shosts 
>>>> "~/.ssh/known_hosts")
>>>>                                (tramp-parse-sconfig "~/.ssh/config"))
>>>>                               ("scp" (tramp-parse-shosts 
>>>> "~/.ssh/known_hosts")
>>>>                                (tramp-parse-sconfig "~/.ssh/config"))
>>>>                               ("adb" (tramp-adb-parse-device-names "")))
>>>> tramp-completion-function-alist-putty '((tramp-parse-putty 
>>>> "~/.putty/sessions"))
>>>> tramp-completion-function-alist-rsh '((tramp-parse-rhosts 
>>>> "/etc/hosts.equiv")
>>>>                                   (tramp-parse-rhosts "~/.rhosts"))
>>>> tramp-completion-function-alist-ssh '((tramp-parse-rhosts 
>>>> "/etc/hosts.equiv")
>>>>                                   (tramp-parse-rhosts "/etc/shosts.equiv")
>>>>                                   (tramp-parse-shosts 
>>>> "/etc/ssh_known_hosts")
>>>>                                   (tramp-parse-sconfig "/etc/ssh_config")
>>>>                                   (tramp-parse-shostkeys 
>>>> "/etc/ssh2/hostkeys")
>>>>                                   (tramp-parse-sknownhosts 
>>>> "/etc/ssh2/knownhosts")
>>>>                                   (tramp-parse-rhosts "~/.rhosts")
>>>>                                   (tramp-parse-rhosts "~/.shosts")
>>>>                                   (tramp-parse-shosts "~/.ssh/known_hosts")
>>>>                                   (tramp-parse-sconfig "~/.ssh/config"))
>>>> tramp-completion-function-alist-su '((tramp-parse-passwd "/etc/passwd"))
>>>> tramp-completion-function-alist-telnet '((tramp-parse-hosts "/etc/hosts"))
>>>> tramp-completion-mode nil
>>>> tramp-completion-reread-directory-timeout 10
>>>> tramp-connection-min-time-diff 5
>>>> tramp-connection-properties nil
>>>> tramp-connection-timeout 60
>>>> tramp-copy-failed-regexp "\\(.+: \\(No such file or directory\\|Permission 
>>>> denied\\|is a directory\\|not a regular file\\)\\)\\s-*"
>>>> tramp-copy-size-limit 10240
>>>> tramp-current-connection '(("scp" "yf" "val17") 23856 28355 498686 667000)
>>>> tramp-current-host "val17"
>>>> tramp-current-method "scp"
>>>> tramp-current-user "yf"
>>>> tramp-debug-on-error nil
>>>> tramp-debug-outline-regexp "[0-9]+:[0-9]+:[0-9]+\\.[0-9]+ [a-z0-9-]+ 
>>>> (\\([0-9]+\\)) #"
>>>> tramp-default-host "Tesla"
>>>> tramp-default-host-alist '(("adb" nil ""))
>>>> tramp-default-method "scp"
>>>> tramp-default-method-alist '((nil "%" "smb")
>>>>                          
>>>> ("\\`\\(127\\.0\\.0\\.1\\|::1\\|Tesla\\|localhost6?\\)\\'"
>>>>                           "\\`root\\'" "su")
>>>>                          (nil "\\`\\(anonymous\\|ftp\\)\\'" "ftp")
>>>>                          ("\\`ftp\\." nil "ftp"))
>>>> tramp-default-proxies-alist nil
>>>> tramp-default-user nil
>>>> tramp-default-user-alist '(("\\`smb\\'" nil nil)
>>>>                        
>>>> ("\\`\\(?:fcp\\|krlogin\\|nc\\|r\\(?:cp\\|emcp\\|sh\\)\\|telnet\\)\\'" nil 
>>>> "fan")
>>>>                        ("\\`\\(?:ksu\\|su\\(?:do\\)?\\)\\'" nil "root")
>>>>                        ("\\`\\(?:socks\\|tunnel\\)\\'" nil "fan")
>>>>                        ("\\`synce\\'" nil nil))
>>>> tramp-devices 1
>>>> tramp-domain-regexp "[-a-zA-Z0-9_.]+"
>>>> tramp-echo-mark "_echo"
>>>> tramp-echo-mark-marker "_echo"
>>>> tramp-echo-mark-marker-length 5
>>>> tramp-echoed-echo-mark-regexp "_echo\\(\\( \\)?\\)\\{5\\}"
>>>> tramp-encoding-command-interactive "-i"
>>>> tramp-encoding-command-switch "-c"
>>>> tramp-encoding-shell "/bin/sh"
>>>> tramp-end-of-heredoc "9afcc3e434511e46e4b1da384a003e5c"
>>>> tramp-end-of-output "///8fd8293e1ef788d3e40d5a4f4c2e3e6a#$"
>>>> tramp-file-mode-type-map '((0 . "-") (1 . "p") (2 . "c") (3 . "m") (4 . 
>>>> "d") (5 . "?")
>>>>                        (6 . "b") (7 . "?") (8 . "-") (9 . "n") (10 . "l") 
>>>> (11 . "?")
>>>>                        (12 . "s") (13 . "D") (14 . "w"))
>>>> tramp-file-name-regexp "\\`/[^/|:][^/|]*:"
>>>> tramp-file-name-regexp-separate "\\`/\\[.*\\]"
>>>> tramp-file-name-regexp-unified "\\`/[^/|:][^/|]*:"
>>>> tramp-file-name-structure 
>>>> '("^/\\(\\(?:\\(?:\\([a-zA-Z_0-9-]+\\):\\)?\\(?:\\([^/|:         
>>>> ]+\\)@\\)?\\(\\(?:[a-zA-Z0-9_.-]+\\|\\[\\(?:\\(?:\\(?:[a-zA-Z0-9]+\\)?:\\)+[a-zA-Z0-9.]+\\)?]\\)\\(?:#[0-9]+\\)?\\)?|\\)+\\)?\\(?:\\([a-zA-Z_0-9-]+\\):\\)?\\(?:\\([^/|:
>>>>         
>>>> ]+\\)@\\)?\\(\\(?:[a-zA-Z0-9_.-]+\\|\\[\\(?:\\(?:\\(?:[a-zA-Z0-9]+\\)?:\\)+[a-zA-Z0-9.]+\\)?]\\)\\(?:#[0-9]+\\)?\\)?:\\(.*$\\)"
>>>>  5 6 7 8 1)
>>>> tramp-foreign-file-name-handler-alist '((tramp-smb-file-name-p . 
>>>> tramp-smb-file-name-handler)
>>>>                                     (tramp-gvfs-file-name-p .
>>>>                                      tramp-gvfs-file-name-handler)
>>>>                                     (tramp-ftp-file-name-p . 
>>>> tramp-ftp-file-name-handler)
>>>>                                     (tramp-adb-file-name-p . 
>>>> tramp-adb-file-name-handler)
>>>>                                     (identity . 
>>>> tramp-sh-file-name-handler))
>>>> tramp-ftp-method "ftp"
>>>> tramp-gvfs-methods '("afp" "dav" "davs" "obex" "sftp" "synce")
>>>> tramp-gvfs-zeroconf-domain "local"
>>>> tramp-gw-socks-method "socks"
>>>> tramp-gw-tunnel-method "tunnel"
>>>> tramp-half-a-year '(241 17024)
>>>> tramp-handle-file-local-copy-hook nil
>>>> tramp-handle-write-region-hook nil
>>>> tramp-histfile-override "~/.bash_history"
>>>> tramp-host-regexp "[a-zA-Z0-9_.-]+"
>>>> tramp-host-with-port-regexp "\\([a-zA-Z0-9_.-]+\\)#\\([0-9]+\\)"
>>>> tramp-initial-end-of-output "#$ "
>>>> tramp-inline-compress-commands '(("gzip" "gzip -d") ("bzip2" "bzip2 -d") 
>>>> ("xz" "xz -d")
>>>>                              ("compress" "compress -d"))
>>>> tramp-inline-compress-start-size 4096
>>>> tramp-inodes 0
>>>> tramp-ipv6-regexp "\\(?:\\(?:[a-zA-Z0-9]+\\)?:\\)+[a-zA-Z0-9.]+"
>>>> tramp-local-coding-commands '((b64 base64-encode-region 
>>>> base64-decode-region)
>>>>                           (uu tramp-uuencode-region uudecode-decode-region)
>>>>                           (pack
>>>>                            "perl -e 'binmode STDIN; binmode STDOUT; print 
>>>> pack(q{u*}, join q{}, <>)'" "perl -e 'binmode STDIN; binmode STDOUT; print 
>>>> unpack(q{u*}, join q{}, <>)'")
>>>>                           )
>>>> tramp-local-end-of-line "\n"
>>>> tramp-local-host-regexp 
>>>> "\\`\\(127\\.0\\.0\\.1\\|::1\\|Tesla\\|localhost6?\\)\\'"
>>>> tramp-localname-regexp ".*$"
>>>> tramp-locked nil
>>>> tramp-locker nil
>>>> tramp-login-prompt-regexp ".*\\(user\\|login\\)\\( .*\\)?: *"
>>>> tramp-message-show-message t
>>>> tramp-method-regexp "[a-zA-Z_0-9-]+"
>>>> tramp-methods '(("smb" (tramp-remote-shell "") (tramp-tmpdir "/C$/Temp"))
>>>>             ("fcp" (tramp-login-program "fsh")
>>>>              (tramp-login-args (("%h") ("-l" "%u") ("sh" "-i")))
>>>>              (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login 
>>>> ("-l"))
>>>>              (tramp-remote-shell-args ("-i") ("-c")) (tramp-copy-program 
>>>> "fcp")
>>>>              (tramp-copy-args (("-p" "%k"))) (tramp-copy-keep-date t))
>>>>             ("psftp" (tramp-login-program "plink")
>>>>              (tramp-login-args
>>>>               (("-l" "%u") ("-P" "%p") ("-ssh") ("-t") ("%h") ("\"")
>>>>                ("env 'TERM=dumb' 'PROMPT_COMMAND=' 'PS1=#$ '") ("/bin/sh") 
>>>> ("\""))
>>>>               )
>>>>              (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login 
>>>> ("-l"))
>>>>              (tramp-remote-shell-args ("-c")) (tramp-copy-program "pscp")
>>>>              (tramp-copy-args
>>>>               (("-l" "%u") ("-P" "%p") ("-sftp") ("-p" "%k") ("-q") 
>>>> ("-r")))
>>>>              (tramp-copy-keep-date t) (tramp-copy-recursive t))
>>>>             ("pscp" (tramp-login-program "plink")
>>>>              (tramp-login-args
>>>>               (("-l" "%u") ("-P" "%p") ("-ssh") ("-t") ("%h") ("\"")
>>>>                ("env 'TERM=dumb' 'PROMPT_COMMAND=' 'PS1=#$ '") ("/bin/sh") 
>>>> ("\""))
>>>>               )
>>>>              (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login 
>>>> ("-l"))
>>>>              (tramp-remote-shell-args ("-c")) (tramp-copy-program "pscp")
>>>>              (tramp-copy-args
>>>>               (("-l" "%u") ("-P" "%p") ("-scp") ("-p" "%k") ("-q") ("-r")))
>>>>              (tramp-copy-keep-date t) (tramp-copy-recursive t) 
>>>> (tramp-default-port 22))
>>>>             ("plinkx" (tramp-login-program "plink")
>>>>              (tramp-login-args
>>>>               (("-load") ("%h") ("-t") ("\"")
>>>>                ("env 'TERM=dumb' 'PROMPT_COMMAND=' 'PS1=#$ '") ("/bin/sh") 
>>>> ("\""))
>>>>               )
>>>>              (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login 
>>>> ("-l"))
>>>>              (tramp-remote-shell-args ("-c")))
>>>>             ("plink" (tramp-login-program "plink")
>>>>              (tramp-login-args
>>>>               (("-l" "%u") ("-P" "%p") ("-ssh") ("-t") ("%h") ("\"")
>>>>                ("env 'TERM=dumb' 'PROMPT_COMMAND=' 'PS1=#$ '") ("/bin/sh") 
>>>> ("\""))
>>>>               )
>>>>              (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login 
>>>> ("-l"))
>>>>              (tramp-remote-shell-args ("-c")) (tramp-default-port 22))
>>>>             ("krlogin" (tramp-login-program "krlogin")
>>>>              (tramp-login-args (("%h") ("-l" "%u") ("-x")))
>>>>              (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login 
>>>> ("-l"))
>>>>              (tramp-remote-shell-args ("-c")))
>>>>             ("ksu" (tramp-login-program "ksu") (tramp-login-args (("%u") 
>>>> ("-q")))
>>>>              (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login 
>>>> ("-l"))
>>>>              (tramp-remote-shell-args ("-c")) (tramp-connection-timeout 
>>>> 10))
>>>>             ("sudo" (tramp-login-program "sudo")
>>>>              (tramp-login-args
>>>>               (("-u" "%u") ("-s") ("-H")
>>>>                ("-p" "P\"\"a\"\"s\"\"s\"\"w\"\"o\"\"r\"\"d\"\":"))
>>>>               )
>>>>              (tramp-login-env (("SHELL") ("/bin/sh"))) (tramp-remote-shell 
>>>> "/bin/sh")
>>>>              (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args 
>>>> ("-c"))
>>>>              (tramp-connection-timeout 10))
>>>>             ("su" (tramp-login-program "su") (tramp-login-args (("-") 
>>>> ("%u")))
>>>>              (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login 
>>>> ("-l"))
>>>>              (tramp-remote-shell-args ("-c")) (tramp-connection-timeout 
>>>> 10))
>>>>             ("nc" (tramp-login-program "telnet")
>>>>              (tramp-login-args (("%h") ("%p") ("2>/dev/null")))
>>>>              (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login 
>>>> ("-l"))
>>>>              (tramp-remote-shell-args ("-c")) (tramp-copy-program "nc")
>>>>              (tramp-copy-args (("-w" "1") ("-v") ("%h") ("%r")))
>>>>              (tramp-remote-copy-program "nc")
>>>>              (tramp-remote-copy-args (("-l") ("-p" "%r") ("2>/dev/null")))
>>>>              (tramp-default-port 23))
>>>>             ("telnet" (tramp-login-program "telnet")
>>>>              (tramp-login-args (("%h") ("%p") ("2>/dev/null")))
>>>>              (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login 
>>>> ("-l"))
>>>>              (tramp-remote-shell-args ("-c")) (tramp-default-port 23))
>>>>             ("sshx" (tramp-login-program "ssh")
>>>>              (tramp-login-args
>>>>               (("-l" "%u") ("-p" "%p") ("%c") ("-e" "none") ("-t" "-t") 
>>>> ("%h")
>>>>                ("/bin/sh"))
>>>>               )
>>>>              (tramp-async-args (("-q"))) (tramp-remote-shell "/bin/sh")
>>>>              (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args 
>>>> ("-c"))
>>>>              (tramp-gw-args
>>>>               (("-o" "GlobalKnownHostsFile=/dev/null")
>>>>                ("-o" "UserKnownHostsFile=/dev/null") ("-o" 
>>>> "StrictHostKeyChecking=no"))
>>>>               )
>>>>              (tramp-default-port 22))
>>>>             ("ssh" (tramp-login-program "ssh")
>>>>              (tramp-login-args (("-l" "%u") ("-p" "%p") ("%c") ("-e" 
>>>> "none") ("%h")))
>>>>              (tramp-async-args (("-q"))) (tramp-remote-shell "/bin/sh")
>>>>              (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args 
>>>> ("-c"))
>>>>              (tramp-gw-args
>>>>               (("-o" "GlobalKnownHostsFile=/dev/null")
>>>>                ("-o" "UserKnownHostsFile=/dev/null") ("-o" 
>>>> "StrictHostKeyChecking=no"))
>>>>               )
>>>>              (tramp-default-port 22))
>>>>             ("remsh" (tramp-login-program "remsh")
>>>>              (tramp-login-args (("%h") ("-l" "%u"))) (tramp-remote-shell 
>>>> "/bin/sh")
>>>>              (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args 
>>>> ("-c")))
>>>>             ("rsh" (tramp-login-program "rsh") (tramp-login-args (("%h") 
>>>> ("-l" "%u")))
>>>>              (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login 
>>>> ("-l"))
>>>>              (tramp-remote-shell-args ("-c")))
>>>>             ("rsync" (tramp-login-program "ssh")
>>>>              (tramp-login-args (("-l" "%u") ("-p" "%p") ("%c") ("-e" 
>>>> "none") ("%h")))
>>>>              (tramp-async-args (("-q"))) (tramp-remote-shell "/bin/sh")
>>>>              (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args 
>>>> ("-c"))
>>>>              (tramp-copy-program "rsync") (tramp-copy-args (("-t" "%k") 
>>>> ("-r")))
>>>>              (tramp-copy-env (("RSYNC_RSH") ("ssh" "%c"))) 
>>>> (tramp-copy-keep-date t)
>>>>              (tramp-copy-keep-tmpfile t) (tramp-copy-recursive t))
>>>>             ("scpx" (tramp-login-program "ssh")
>>>>              (tramp-login-args
>>>>               (("-l" "%u") ("-p" "%p") ("%c") ("-e" "none") ("-t" "-t") 
>>>> ("%h")
>>>>                ("/bin/sh"))
>>>>               )
>>>>              (tramp-async-args (("-q"))) (tramp-remote-shell "/bin/sh")
>>>>              (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args 
>>>> ("-c"))
>>>>              (tramp-copy-program "scp")
>>>>              (tramp-copy-args (("-P" "%p") ("-p" "%k") ("-q") ("-r") 
>>>> ("%c")))
>>>>              (tramp-copy-keep-date t) (tramp-copy-recursive t)
>>>>              (tramp-gw-args
>>>>               (("-o" "GlobalKnownHostsFile=/dev/null")
>>>>                ("-o" "UserKnownHostsFile=/dev/null") ("-o" 
>>>> "StrictHostKeyChecking=no"))
>>>>               )
>>>>              (tramp-default-port 22))
>>>>             ("scp" (tramp-login-program "ssh")
>>>>              (tramp-login-args (("-l" "%u") ("-p" "%p") ("%c") ("-e" 
>>>> "none") ("%h")))
>>>>              (tramp-async-args (("-q"))) (tramp-remote-shell "/bin/sh")
>>>>              (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args 
>>>> ("-c"))
>>>>              (tramp-copy-program "scp")
>>>>              (tramp-copy-args (("-P" "%p") ("-p" "%k") ("-q") ("-r") 
>>>> ("%c")))
>>>>              (tramp-copy-keep-date t) (tramp-copy-recursive t)
>>>>              (tramp-gw-args
>>>>               (("-o" "GlobalKnownHostsFile=/dev/null")
>>>>                ("-o" "UserKnownHostsFile=/dev/null") ("-o" 
>>>> "StrictHostKeyChecking=no"))
>>>>               )
>>>>              (tramp-default-port 22))
>>>>             ("remcp" (tramp-login-program "remsh")
>>>>              (tramp-login-args (("%h") ("-l" "%u"))) (tramp-remote-shell 
>>>> "/bin/sh")
>>>>              (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args 
>>>> ("-c"))
>>>>              (tramp-copy-program "rcp") (tramp-copy-args (("-p" "%k")))
>>>>              (tramp-copy-keep-date t))
>>>>             ("rcp" (tramp-login-program "rsh") (tramp-login-args (("%h") 
>>>> ("-l" "%u")))
>>>>              (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login 
>>>> ("-l"))
>>>>              (tramp-remote-shell-args ("-c")) (tramp-copy-program "rcp")
>>>>              (tramp-copy-args (("-p" "%k") ("-r"))) (tramp-copy-keep-date 
>>>> t)
>>>>              (tramp-copy-recursive t))
>>>>             ("synce") ("sftp") ("obex") ("davs") ("dav") ("afp") ("ftp")
>>>>             ("adb" (tramp-tmpdir "/data/local/tmp") (tramp-default-port 
>>>> 5555)))
>>>> tramp-mode t
>>>> tramp-obsolete-methods '("ssh1" "ssh2" "scp1" "scp2" "scpc" "rsyncc" 
>>>> "plink1")
>>>> tramp-operation-not-permitted-regexp "\\(preserving times.*\\|set 
>>>> mode\\):\\s-*\\(Operation not permitted\\)"
>>>> tramp-parse-time-months '(("jan" . 1) ("feb" . 2) ("mar" . 3) ("apr" . 4) 
>>>> ("may" . 5)
>>>>                       ("jun" . 6) ("jul" . 7) ("aug" . 8) ("sep" . 9) 
>>>> ("oct" . 10)
>>>>                       ("nov" . 11) ("dec" . 12))
>>>> tramp-password-prompt-regexp "(decode-coding-string (base64-decode-string 
>>>> \"Xi4qXChcKD86YWRnYW5nc2tvZGVcfGNvbnRyYXNlXCg/OlwoPzpueVx8w7FcKWFcKVx8Z2VzbG9c\nfGhcKD86XCg/OmFzxYJcfGVzbFwpb1wpXHxpcGhhc2l3ZWRpXHxqZWxzesOzXHxsXCg/Om96aW5r\nYVx8w7ZzZW5vcmRcKVx8bVwoPzpvdCBkZSBwYXNzZVx84bqtdCBraOG6qXVcKVx8cGFcKD86cm9s\nYVx8c1woPzphaGl0emFcfHNcKD86IHBocmFzZVx8Y29kZVx8b3JkXHxwaHJhc2VcfHdvcltkdF1c\nKVx8dm9ydG9cKVwpXHxzXCg/OmFsYXNhbmFcfGVuaGFcfGxhcHRhxb5vZGlzXClcfHdhY2h0d29v\ncmRcfNC70L7Qt9C40L3QutCwXHzQv9Cw0YDQvtC70YxcfNeh16HXnteUXHzZg9mE2YXYqSDYp9mE\n2LPYsVx84KSX4KWB4KSq4KWN4KSk4KS24KSs4KWN4KSmXHzgpLbgpKzgpY3gpKbgpJXgpYLgpJ9c\nfOCml+CngeCmquCnjeCmpOCmtuCmrOCnjeCmplx84Kaq4Ka+4Ka44KaT4Kef4Ka+4Kaw4KeN4Kah\nXHzgqKrgqL7gqLjgqLXgqLDgqKFcfOCqquCqvuCquOCqteCqsOCrjeCqoVx84Kyq4K2N4Kyw4Kys\n4K2H4Ky2IOCsuOCsmeCtjeCsleCth+CspFx84K6V4K6f4K614K+B4K6a4K+N4K6a4K+K4K6y4K+N\nXHzgsLjgsILgsJXgsYfgsKTgsKrgsKbgsK7gsYFcfOCyl+CzgeCyquCzjeCypOCyquCyplx84LSF\n4LSf4LSv4LS+4LSz4LS14LS+4LSV4LWN4LSV4LWNXHzgtrvgt4Tgt4Pgt4rgtrTgtq/gtrpcfOGe\nluGetuGegOGfkuGemeGen+GemOGfkuGehOGetuGej+Gfi1x844OR44K544Ov44O844OJXHzlr4Zb\n56CB56K8XVx87JWU7Zi4XClcKS4qOgA/ICo=\")
>>>>  'raw-text)"
>>>> tramp-perl-decode "%s -e '\n# This script contributed by Juanma 
>>>> Barranquero <address@hidden>.\n# Copyright (C) 2002-2017 Free Software 
>>>> Foundation, Inc.\nuse strict;\n\nmy %%trans = do {\n    my $i = 0;\n    
>>>> map {($_, substr(unpack(q(B8), chr $i++), 2, 6))}\n      split //, 
>>>> q(ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/)\n};\n\nmy
>>>>  %%bytes = map {(unpack(q(B8), chr $_), chr $_)} 0 .. 
>>>> 255;\n\nbinmode(\\*STDOUT);\n\n# We are going to accumulate into $pending 
>>>> to accept any line length\n# (we do not check they are <= 76 chars as the 
>>>> RFC says)\nmy $pending = q();\n\nwhile (my $data = <STDIN>) {\n    chomp 
>>>> $data;\n\n    # If we find one or two =, we have reached the end and\n    
>>>> # any following data is to be discarded\n    my $finished = $data =~ 
>>>> s/(==?).*/$1/;\n    $pending .= $data;\n\n    my $len = 
>>>> length($pending);\n    my $chunk = substr($pending, 0, $len & ~3);\n    
>>>> $pending = substr($pending, $len & ~3 + 1);\n\n    # Easy method: 
>>>> translate from chars to (pregenerated) six-bit packets, join,\n    # split 
>>>> in 8-bit chunks and convert back to char.\n    print join q(),\n      map 
>>>> $bytes{$_},\n        ((join q(), map {$trans{$_} || q()} split //, $chunk) 
>>>> =~ /......../g);\n\n    last if $finished;\n}' 2>/dev/null"
>>>> tramp-perl-decode-with-module "%s -MMIME::Base64 -0777 -ne 'print 
>>>> decode_base64($_)' 2>/dev/null"
>>>> tramp-perl-directory-files-and-attributes "%s -e '\nchdir($ARGV[0]) or 
>>>> printf(\"\\\"Cannot change to $ARGV[0]: $''!''\\\"\\n\"), 
>>>> exit();\nopendir(DIR,\".\") or printf(\"\\\"Cannot open directory 
>>>> $ARGV[0]: $''!''\\\"\\n\"), exit();\n@list = 
>>>> readdir(DIR);\nclosedir(DIR);\n$n = 
>>>> scalar(@list);\nprintf(\"(\\n\");\nfor($i = 0; $i < $n; $i++)\n{\n    
>>>> $filename = $list[$i];\n    @stat = lstat($filename);\n    if (($stat[2] & 
>>>> 0170000) == 0120000)\n    {\n        $type = readlink($filename);\n        
>>>> $type =~ s/\"/\\\\\"/g;\n        $type = \"\\\"$type\\\"\";\n    }\n    
>>>> elsif (($stat[2] & 0170000) == 040000)\n    {\n        $type = \"t\";\n    
>>>> }\n    else\n    {\n        $type = \"nil\"\n    };\n    $uid = ($ARGV[1] 
>>>> eq \"integer\") ? $stat[4] : \"\\\"\" . getpwuid($stat[4]) . \"\\\"\";\n   
>>>>  $gid = ($ARGV[1] eq \"integer\") ? $stat[5] : \"\\\"\" . 
>>>> getgrgid($stat[5]) . \"\\\"\";\n    $filename =~ s/\"/\\\\\"/g;\n    
>>>> printf(\n        \"(\\\"%%s\\\" %%s %%u %%s %%s (%%u %%u) (%%u %%u) (%%u 
>>>> %%u) %%u.0 %%u t (%%u . %%u) (%%u . %%u))\\n\",\n        $filename,\n      
>>>>   $type,\n        $stat[3],\n        $uid,\n        $gid,\n        
>>>> $stat[8] >> 16 & 0xffff,\n        $stat[8] & 0xffff,\n        $stat[9] >> 
>>>> 16 & 0xffff,\n        $stat[9] & 0xffff,\n        $stat[10] >> 16 & 
>>>> 0xffff,\n        $stat[10] & 0xffff,\n        $stat[7],\n        
>>>> $stat[2],\n        $stat[1] >> 16 & 0xffff,\n        $stat[1] & 0xffff,\n  
>>>>       $stat[0] >> 16 & 0xffff,\n        $stat[0] & 
>>>> 0xffff);\n}\nprintf(\")\\n\");' \"$1\" \"$2\" 2>/dev/null"
>>>> tramp-perl-encode "%s -e '\n# This script contributed by Juanma 
>>>> Barranquero <address@hidden>.\n# Copyright (C) 2002-2017 Free Software 
>>>> Foundation, Inc.\nuse strict;\n\nmy %%trans = do {\n    my $i = 0;\n    
>>>> map {(substr(unpack(q(B8), chr $i++), 2, 6), $_)}\n      split //, 
>>>> q(ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/);\n};\nmy
>>>>  $data;\n\n# We read in chunks of 54 bytes, to generate output lines\n# of 
>>>> 72 chars (plus end of line)\nwhile (read STDIN, $data, 54) {\n    my $pad 
>>>> = q();\n\n    # Only for the last chunk, and only if did not fill the last 
>>>> three-byte packet\n    if (eof) {\n        my $mod = length($data) %% 3;\n 
>>>>        $pad = q(=) x (3 - $mod) if $mod;\n    }\n\n    # Not the fastest 
>>>> method, but it is simple: unpack to binary string, split\n    # by groups 
>>>> of 6 bits and convert back from binary to byte; then map into\n    # the 
>>>> translation table\n    print\n      join q(),\n        map($trans{$_},\n   
>>>>          (substr(unpack(q(B*), $data) . q(00000), 0, 432) =~ 
>>>> /....../g)),\n              $pad,\n                qq(\\n);\n}' 
>>>> 2>/dev/null"
>>>> tramp-perl-encode-with-module "%s -MMIME::Base64 -0777 -ne 'print 
>>>> encode_base64($_)' 2>/dev/null"
>>>> tramp-perl-file-attributes "%s -e '\n@stat = lstat($ARGV[0]);\nif (!@stat) 
>>>> {\n    print \"nil\\n\";\n    exit 0;\n}\nif (($stat[2] & 0170000) == 
>>>> 0120000)\n{\n    $type = readlink($ARGV[0]);\n    $type =~ 
>>>> s/\"/\\\\\"/g;\n    $type = \"\\\"$type\\\"\";\n}\nelsif (($stat[2] & 
>>>> 0170000) == 040000)\n{\n    $type = \"t\";\n}\nelse\n{\n    $type = 
>>>> \"nil\"\n};\n$uid = ($ARGV[1] eq \"integer\") ? $stat[4] : \"\\\"\" . 
>>>> getpwuid($stat[4]) . \"\\\"\";\n$gid = ($ARGV[1] eq \"integer\") ? 
>>>> $stat[5] : \"\\\"\" . getgrgid($stat[5]) . \"\\\"\";\nprintf(\n    \"(%%s 
>>>> %%u %%s %%s (%%u %%u) (%%u %%u) (%%u %%u) %%u.0 %%u t (%%u . %%u) 
>>>> -1)\\n\",\n    $type,\n    $stat[3],\n    $uid,\n    $gid,\n    $stat[8] 
>>>> >> 16 & 0xffff,\n    $stat[8] & 0xffff,\n    $stat[9] >> 16 & 0xffff,\n    
>>>> $stat[9] & 0xffff,\n    $stat[10] >> 16 & 0xffff,\n    $stat[10] & 
>>>> 0xffff,\n    $stat[7],\n    $stat[2],\n    $stat[1] >> 16 & 0xffff,\n    
>>>> $stat[1] & 0xffff\n);' \"$1\" \"$2\" 2>/dev/null"
>>>> tramp-perl-file-name-all-completions "%s -e 'sub case {\n my $str = 
>>>> shift;\n if ($ARGV[2]) {\n  return lc($str);\n }\n else {\n  return 
>>>> $str;\n }\n}\nopendir(d, $ARGV[0]) || die(\"$ARGV[0]: 
>>>> $!\\nfail\\n\");\n@files = readdir(d); closedir(d);\nforeach $f (@files) 
>>>> {\n if (case(substr($f, 0, length($ARGV[1]))) eq case($ARGV[1])) {\n  if 
>>>> (-d \"$ARGV[0]/$f\") {\n   print \"$f/\\n\";\n  }\n  else {\n   print 
>>>> \"$f\\n\";\n  }\n }\n}\nprint \"ok\\n\"\n' \"$1\" \"$2\" \"$3\" 
>>>> 2>/dev/null"
>>>> tramp-perl-file-truename "%s -e '\nuse File::Spec;\nuse Cwd 
>>>> \"realpath\";\n\nsub myrealpath {\n    my ($file) = @_;\n    return 
>>>> realpath($file) if -e $file;\n}\n\nsub recursive {\n    my ($volume, 
>>>> @dirs) = @_;\n    my $real = myrealpath(File::Spec->catpath(\n             
>>>>       $volume, File::Spec->catdir(@dirs), \"\"));\n    if ($real) {\n      
>>>>   my ($vol, $dir) = File::Spec->splitpath($real, 1);\n        return 
>>>> ($vol, File::Spec->splitdir($dir));\n    }\n    else {\n        my $last = 
>>>> pop(@dirs);\n        ($volume, @dirs) = recursive($volume, @dirs);\n       
>>>>  push(@dirs, $last);\n        return ($volume, @dirs);\n    
>>>> }\n}\n\n$result = myrealpath($ARGV[0]);\nif (!$result) {\n    my ($vol, 
>>>> $dir) = File::Spec->splitpath($ARGV[0], 1);\n    ($vol, @dirs) = 
>>>> recursive($vol, File::Spec->splitdir($dir));\n\n    $result = 
>>>> File::Spec->catpath($vol, File::Spec->catdir(@dirs), \"\");\n}\n\n$result 
>>>> =~ s/\"/\\\\\"/g;\nprint \"\\\"$result\\\"\\n\";\n' \"$1\" 2>/dev/null"
>>>> tramp-perl-pack "%s -e 'binmode STDIN; binmode STDOUT; print pack(q{u*}, 
>>>> join q{}, <>)'"
>>>> tramp-perl-unpack "%s -e 'binmode STDIN; binmode STDOUT; print 
>>>> unpack(q{u*}, join q{}, <>)'"
>>>> tramp-persistency-file-name "/home/fan/.emacs.d/tramp"
>>>> tramp-port-regexp "[0-9]+"
>>>> tramp-postfix-hop-format "|"
>>>> tramp-postfix-hop-regexp "|"
>>>> tramp-postfix-host-format ":"
>>>> tramp-postfix-host-regexp ":"
>>>> tramp-postfix-ipv6-format "]"
>>>> tramp-postfix-ipv6-regexp "]"
>>>> tramp-postfix-method-format ":"
>>>> tramp-postfix-method-regexp ":"
>>>> tramp-postfix-user-format "@"
>>>> tramp-postfix-user-regexp "@"
>>>> tramp-prefix-domain-format "%"
>>>> tramp-prefix-domain-regexp "%"
>>>> tramp-prefix-format "/"
>>>> tramp-prefix-ipv6-format "["
>>>> tramp-prefix-ipv6-regexp "\\["
>>>> tramp-prefix-port-format "#"
>>>> tramp-prefix-port-regexp "#"
>>>> tramp-prefix-regexp "^/"
>>>> tramp-process-alive-regexp ""
>>>> tramp-process-connection-type t
>>>> tramp-remote-coding-commands '((b64 "base64" "base64 -d -i") (b64 "base64" 
>>>> "base64 -d")
>>>>                            (b64 "openssl enc -base64" "openssl enc -d 
>>>> -base64")
>>>>                            (b64 "mimencode -b" "mimencode -u -b")
>>>>                            (b64 "mmencode -b" "mmencode -u -b")
>>>>                            (b64 "recode data..base64" "recode 
>>>> base64..data")
>>>>                            (b64 tramp-perl-encode-with-module
>>>>                             tramp-perl-decode-with-module)
>>>>                            (b64 tramp-perl-encode tramp-perl-decode)
>>>>                            (b64 tramp-awk-encode tramp-awk-decode
>>>>                             "test -c /dev/zero && od -v -t x1 -A n 
>>>> </dev/null && busybox awk '{}' </dev/null")
>>>>                            (uu "uuencode xxx" "uudecode -o /dev/stdout"
>>>>                             "test -c /dev/stdout")
>>>>                            (uu "uuencode xxx" "uudecode -o -")
>>>>                            (uu "uuencode xxx" "uudecode -p")
>>>>                            (uu "uuencode xxx" tramp-uudecode)
>>>>                            (pack tramp-perl-pack tramp-perl-unpack))
>>>> tramp-remote-file-name-spec-regexp 
>>>> "\\(?:\\([a-zA-Z_0-9-]+\\):\\)?\\(?:\\([^/|:    
>>>> ]+\\)@\\)?\\(\\(?:[a-zA-Z0-9_.-]+\\|\\[\\(?:\\(?:\\(?:[a-zA-Z0-9]+\\)?:\\)+[a-zA-Z0-9.]+\\)?]\\)\\(?:#[0-9]+\\)?\\)?"
>>>> tramp-remote-path '(tramp-default-remote-path "/bin" "/usr/bin" "/sbin" 
>>>> "/usr/sbin"
>>>>                 "/usr/local/bin" "/usr/local/sbin" "/local/bin" 
>>>> "/local/freeware/bin"
>>>>                 "/local/gnu/bin" "/usr/freeware/bin" "/usr/pkg/bin" 
>>>> "/usr/contrib/bin"
>>>>                 "/opt/bin" "/opt/sbin" "/opt/local/bin")
>>>> tramp-remote-process-environment '("TMOUT=0" "LC_CTYPE=''" "TERM=dumb"
>>>>                                "INSIDE_EMACS='25.2.2,tramp:2.2.13.25.2'" 
>>>> "CDPATH="
>>>>                                "HISTORY=" "MAIL=" "MAILCHECK=" "MAILPATH=" 
>>>> "PAGER=cat"
>>>>                                "autocorrect=" "correct=")
>>>> tramp-restricted-shell-hosts-alist nil
>>>> tramp-rfn-eshadow-overlay nil
>>>> tramp-rfn-eshadow-update-overlay-regexp "[^:/~]*\\(/\\|~\\)"
>>>> tramp-rsh-end-of-line "\n"
>>>> tramp-save-ad-hoc-proxies nil
>>>> tramp-sh-extra-args '(("/bash\\'" . "-norc -noprofile"))
>>>> tramp-sh-file-name-handler-alist '((add-name-to-file . 
>>>> tramp-sh-handle-add-name-to-file)
>>>>                                (copy-directory . 
>>>> tramp-sh-handle-copy-directory)
>>>>                                (copy-file . tramp-sh-handle-copy-file)
>>>>                                (delete-directory . 
>>>> tramp-sh-handle-delete-directory)
>>>>                                (delete-file . tramp-sh-handle-delete-file)
>>>>                                (directory-file-name . 
>>>> tramp-handle-directory-file-name)
>>>>                                (directory-files . 
>>>> tramp-handle-directory-files)
>>>>                                (directory-files-and-attributes .
>>>>                                 
>>>> tramp-sh-handle-directory-files-and-attributes)
>>>>                                (dired-compress-file .
>>>>                                 tramp-sh-handle-dired-compress-file)
>>>>                                (dired-recursive-delete-directory .
>>>>                                 
>>>> tramp-sh-handle-dired-recursive-delete-directory)
>>>>                                (dired-uncache . tramp-handle-dired-uncache)
>>>>                                (expand-file-name . 
>>>> tramp-sh-handle-expand-file-name)
>>>>                                (file-accessible-directory-p .
>>>>                                 tramp-handle-file-accessible-directory-p)
>>>>                                (file-acl . tramp-sh-handle-file-acl)
>>>>                                (file-attributes . 
>>>> tramp-sh-handle-file-attributes)
>>>>                                (file-directory-p . 
>>>> tramp-sh-handle-file-directory-p)
>>>>                                (file-equal-p . tramp-handle-file-equal-p)
>>>>                                (file-executable-p . 
>>>> tramp-sh-handle-file-executable-p)
>>>>                                (file-exists-p . 
>>>> tramp-sh-handle-file-exists-p)
>>>>                                (file-in-directory-p . 
>>>> tramp-handle-file-in-directory-p)
>>>>                                (file-local-copy . 
>>>> tramp-sh-handle-file-local-copy)
>>>>                                (file-modes . tramp-handle-file-modes)
>>>>                                (file-name-all-completions .
>>>>                                 tramp-sh-handle-file-name-all-completions)
>>>>                                (file-name-as-directory .
>>>>                                 tramp-handle-file-name-as-directory)
>>>>                                (file-name-completion . 
>>>> tramp-handle-file-name-completion)
>>>>                                (file-name-directory . 
>>>> tramp-handle-file-name-directory)
>>>>                                (file-name-nondirectory .
>>>>                                 tramp-handle-file-name-nondirectory)
>>>>                                (file-newer-than-file-p .
>>>>                                 tramp-sh-handle-file-newer-than-file-p)
>>>>                                (file-notify-add-watch .
>>>>                                 tramp-sh-handle-file-notify-add-watch)
>>>>                                (file-notify-rm-watch . 
>>>> tramp-handle-file-notify-rm-watch)
>>>>                                (file-notify-valid-p . 
>>>> tramp-handle-file-notify-valid-p)
>>>>                                (file-ownership-preserved-p .
>>>>                                 tramp-sh-handle-file-ownership-preserved-p)
>>>>                                (file-readable-p . 
>>>> tramp-sh-handle-file-readable-p)
>>>>                                (file-regular-p . 
>>>> tramp-handle-file-regular-p)
>>>>                                (file-remote-p . tramp-handle-file-remote-p)
>>>>                                (file-selinux-context .
>>>>                                 tramp-sh-handle-file-selinux-context)
>>>>                                (file-symlink-p . 
>>>> tramp-handle-file-symlink-p)
>>>>                                (file-truename . 
>>>> tramp-sh-handle-file-truename)
>>>>                                (file-writable-p . 
>>>> tramp-sh-handle-file-writable-p)
>>>>                                (find-backup-file-name .
>>>>                                 tramp-handle-find-backup-file-name)
>>>>                                (insert-directory . 
>>>> tramp-sh-handle-insert-directory)
>>>>                                (insert-file-contents . 
>>>> tramp-handle-insert-file-contents)
>>>>                                (insert-file-contents-literally .
>>>>                                 
>>>> tramp-sh-handle-insert-file-contents-literally)
>>>>                                (load . tramp-handle-load)
>>>>                                (make-auto-save-file-name .
>>>>                                 tramp-handle-make-auto-save-file-name)
>>>>                                (make-directory . 
>>>> tramp-sh-handle-make-directory)
>>>>                                (make-symbolic-link . 
>>>> tramp-sh-handle-make-symbolic-link)
>>>>                                (process-file . 
>>>> tramp-sh-handle-process-file)
>>>>                                (rename-file . tramp-sh-handle-rename-file)
>>>>                                (set-file-acl . 
>>>> tramp-sh-handle-set-file-acl)
>>>>                                (set-file-modes . 
>>>> tramp-sh-handle-set-file-modes)
>>>>                                (set-file-selinux-context .
>>>>                                 tramp-sh-handle-set-file-selinux-context)
>>>>                                (set-file-times . 
>>>> tramp-sh-handle-set-file-times)
>>>>                                (set-visited-file-modtime .
>>>>                                 tramp-sh-handle-set-visited-file-modtime)
>>>>                                (shell-command . tramp-handle-shell-command)
>>>>                                (start-file-process . 
>>>> tramp-sh-handle-start-file-process)
>>>>                                (substitute-in-file-name .
>>>>                                 tramp-handle-substitute-in-file-name)
>>>>                                (unhandled-file-name-directory .
>>>>                                 tramp-handle-unhandled-file-name-directory)
>>>>                                (vc-registered . 
>>>> tramp-sh-handle-vc-registered)
>>>>                                (verify-visited-file-modtime .
>>>>                                 
>>>> tramp-sh-handle-verify-visited-file-modtime)
>>>>                                (write-region . 
>>>> tramp-sh-handle-write-region))
>>>> tramp-shell-prompt-pattern "(decode-coding-string (base64-decode-string 
>>>> \"XCg/Ol5cfA1cKVteXSMkJT4KXSojP1tdIyQlPl0gKlwoG1xbWzAtOTtdKlthLXpBLVpdICpcKSo=\")
>>>>  'raw-text)"
>>>> tramp-smb-acl-program "smbcacls"
>>>> tramp-smb-conf "/dev/null"
>>>> tramp-smb-method "smb"
>>>> tramp-smb-program "smbclient"
>>>> tramp-smb-winexe-program "winexe"
>>>> tramp-smb-winexe-shell-command "powershell.exe"
>>>> tramp-smb-winexe-shell-command-switch "-file -"
>>>> tramp-ssh-controlmaster-options "-o ControlMaster=auto -o 
>>>> ControlPath='tramp.%%C' -o ControlPersist=no"
>>>> tramp-stat-marker "/////"
>>>> tramp-stat-quoted-marker "\\/\\/\\/\\/\\/"
>>>> tramp-syntax 'ftp
>>>> tramp-temp-buffer-file-name nil
>>>> tramp-temp-buffer-name " *tramp temp*"
>>>> tramp-temp-name-prefix "tramp."
>>>> tramp-terminal-prompt-regexp "\\(TERM = (.*)\\|Terminal type\\? 
>>>> \\[.*\\]\\)\\s-*"
>>>> tramp-terminal-type "dumb"
>>>> tramp-unload-hook '(#[nil "\300\301\302\"\207" [unload-feature tramp-cmds 
>>>> force] 3]
>>>>                 #[nil "\300\301\302\"\207" [unload-feature tramp-cache 
>>>> force] 3]
>>>>                 #[nil "\300\301\302\"\207" [unload-feature tramp-sh force] 
>>>> 3]
>>>>                 #[nil "\300\301\302\"\207"
>>>>                   [remove-hook auto-save-hook 
>>>> tramp-set-auto-save-file-modes] 3]
>>>>                 #[nil "\300\301\302\"\207"
>>>>                   [remove-hook kill-buffer-hook 
>>>> tramp-delete-temp-file-function] 3]
>>>>                 tramp-unload-file-name-handlers
>>>>                 #[nil "\300\301\302\"\207"
>>>>                   [remove-hook rfn-eshadow-update-overlay-hook
>>>>                    tramp-rfn-eshadow-update-overlay]
>>>>                   3]
>>>>                 #[nil "\300\301\302\"\207"
>>>>                   [remove-hook rfn-eshadow-setup-minibuffer-hook
>>>>                    tramp-rfn-eshadow-setup-minibuffer]
>>>>                   3]
>>>>                 #[nil "\300\301\302\"\210\300\303\302\"\207"
>>>>                   [unload-feature tramp-loaddefs force tramp-compat] 3]
>>>>                 #[nil "\300\301\302\"\207" [unload-feature trampver force] 
>>>> 3])
>>>> tramp-use-ssh-controlmaster-options t
>>>> tramp-user-regexp "[^/|:   ]+"
>>>> tramp-user-with-domain-regexp "\\([^/|:    ]+\\)%\\([-a-zA-Z0-9_.]+\\)"
>>>> tramp-uudecode "(echo begin 600 %t; tail -n +2) | uudecode\ncat %t\nrm -f 
>>>> %t"
>>>> tramp-vc-registered-file-names nil
>>>> tramp-vc-registered-read-file-names "echo \"(\"\nwhile read file; do\n    
>>>> if %s \"$file\"; then\n  echo \"(\\\"$file\\\" \\\"file-exists-p\\\" 
>>>> t)\"\n    else\n    echo \"(\\\"$file\\\" \\\"file-exists-p\\\" nil)\"\n   
>>>>  fi\n    if %s \"$file\"; then\n echo \"(\\\"$file\\\" 
>>>> \\\"file-readable-p\\\" t)\"\n    else\n  echo \"(\\\"$file\\\" 
>>>> \\\"file-readable-p\\\" nil)\"\n    fi\ndone\necho \")\""
>>>> tramp-verbose 3
>>>> tramp-version "2.2.13.25.2"
>>>> tramp-warned-obsolete-methods nil
>>>> tramp-wrong-passwd-regexp "^.*\\(Connection 
>>>> \\(?:\\(?:clo\\|refu\\)sed\\)\\|Host key verification failed\\.\\|Login 
>>>> \\(?:[Ii]ncorrect\\)\\|N\\(?:ame or service not known\\|o supported 
>>>> authentication methods left to try!\\)\\|Permission denied\\|\\(?:Sorry, 
>>>> try again\\|Timeout, server not responding\\)\\.\\).*\\|^.*\\(Received 
>>>> signal [0-9]+\\).*"
>>>> tramp-yesno-prompt-regexp "\\(Are you sure you want to continue connecting 
>>>> (yes/no)\\?\\)\\s-*"
>>>> tramp-yn-prompt-regexp "\\(\\(?:Store key in cache\\? (y/\\|Update cached 
>>>> key\\? (y/n, Return cancels connectio\\)n)\\)\\s-*"
>>>> )
>>>> 
>>>> local variables:
>>>> ================
>>>> ;; *tramp/scp yf@val17*
>>>> (setq-local
>>>> default-directory "/scp:yf@val17:/"
>>>> )
>>>> 
>>>> load-path shadows:
>>>> ==================
>>>> 
>>>> <#part type="text/plain" encoding=base64 disposition=attachment 
>>>> buffer="*tramp/scp yf@val17*" description="*tramp/scp yf@val17*">
>>>> <#/part>
>>>> 
>>>> 
>>>> _______________________________________________
>>>> Tramp-devel mailing list
>>>> address@hidden
>>>> https://lists.gnu.org/mailman/listinfo/tramp-devel




reply via email to

[Prev in Thread] Current Thread [Next in Thread]