18

24.2 运行良好,但 24.3 bounded tramp 在打开远程 Linux 系统文件或目录时出现以下错误:

"byte-code: Couldn't find a proper `ls' command"

我打开tramp trace,发现所有远程搜索路径和文件路径都扩展了一些东西,在开头添加了一个额外的“c:”。结果是tramp找不到我想打开的命令和文件。

16:04:51.768000 tramp-get-connection-property (7) # process-buffer nil
16:04:51.769000 tramp-set-file-property (8) # c:/bin file-directory-p nil 
16:04:51.770000 tramp-get-file-property (8) # c:/usr/bin file-directory-p undef 
... 
16:04:59.531000 tramp-sh-handle-file-truename (5) # Check /c: 
16:04:59.532000 tramp-get-file-property (8) # c:/c: file-attributes-integer undef 
... 
16:04:51.773000 tramp-get-connection-property (7) # process-name nil 
16:04:51.773000 tramp-get-connection-property (7) # chunksize 0 
16:04:51.773000 tramp-set-connection-property (7) # last-cmd-time (20809 28067 773000 0) 
16:04:51.774000 tramp-send-string (10) # test -d c\:/usr/bin 2>/dev/null; echo tramp_exit_status $? 

有人知道吗?提前致谢。

4

4 回答 4

19

合并@AlanThird 的答案和@uscjeremy 的评论,这对我有用(GNU Emacs 24.3.1 (i386-mingw-nt5.1.2600) of 2013-03-17 on MARVIN,Windows XP/SP3/32) :

  1. 字节编译tramp-sh.el(相应地调整路径):

    (byte-compile-file "C:/Program Files (X86)/emacs/lisp/net/tramp-sh.el")
    
  2. 退出 Emacs。

  3. 删除 Tramp 缓存:~/.emacs.d/tramp

  4. 启动 Emacs。

另请参阅gnu.org 上的错误报告 #14030

于 2013-09-12T12:57:00.053 回答
8

这似乎是 tramp 中的一个错误,但您不需要升级 tramp,您所要做的就是在 Windows 机器上重新编译 tramp-sh.el。请参阅此处的错误报告以获取更多信息。

在暂存缓冲区中输入:

(byte-compile-file "C:/Program Files/emacs/lisp/net/tramp-sh.el")

调整路径以匹配您的安装,然后键入Ctrl-Meta-x以重新编译文件。如果它抱怨权限,您可能需要使用 Windows 中的“以管理员身份运行”选项重新启动 emacs。

重新编译文件后,键入M-x tramp-cleanup-all-connections以重置 tramp 连接缓存。这将关闭您打开的任何流浪者连接。

于 2013-05-08T13:09:18.970 回答
3

切换到 Emacs 24.3 后我遇到了同样的问题。解决方案是升级到最新的 Tramp 2.2.7。这是我所做的:

  1. 下载http://ftp.gnu.org/gnu/tramp/tramp-2.2.7.ta​​r.gz
  2. 将存档解压缩到我的 ~/.emacs.d/src。我正在使用 emacs-starter-kit 将此目录及其所有子目录添加到加载路径。否则按照 Tramp 的 INSTALL 文件中的说明进行操作。
  3. 使用 Cygwin bash 配置和编译文件。我通常不使用 Cygwin 的 Emacs,但在这种情况下使用它很方便。
  4. 为了安全起见,删除了我的 emacs/lisp/net 中旧流浪汉的 el 和 elc 文件。
  5. 当然重新启动了 Emacs。

执行 Mx tramp-version 以确保它已正确安装。现在流浪汉无处不在(dired、eshell、shell 等)。

于 2013-03-21T17:15:09.167 回答
2

使用eval-expressionwith(byte-compile-file ..)对我不起作用,但以下操作:

  1. 以管理员身份打开 emacs(右键单击任务栏上的 emacs 按钮,右键单击弹出窗口中的 emacs 图标,单击“以管理员身份运行”)
  2. 使用 Alt-X 进行编译而不是 eval-expression: M-x byte-compile-file: c:/Program Files/emacs-24.3/lisp/net/tramp-sh.el
  3. 进入tramp-cleanup-all-connections原始 emacs 窗口,然后尝试再次打开您的远程文件。
于 2014-04-16T13:28:12.540 回答