我发现在 emacs 中的远程机器上运行我的 shell 的最佳方式是使用 TRAMP(ssh
在本地 shell 中使用该命令不能满足我的需要)。但是,如果我首先使用该缓冲区访问远程文件C-x C-f
然后M-x shell
从该缓冲区执行操作,我只知道如何运行 TRAMP shell 。但是,在打开该远程主机上的任何文件之前,我想在远程机器上使用 TRAMP 打开一个 shell ,但在我的搜索中找不到任何关于如何执行此操作的说明。有可能这样做吗?
当我使用tramp 打开远程目录(比如Cx Cf /ssh:user@example:/somedirectory)时,它会为该远程目录打开一个dired 缓冲区。问题是我想将目录和/或文件从远程服务器复制到我的本地机器。我尝试了一些语法,例如标记所有目录或文件、按“C”并指定 local:/somelocaldir 或仅指定 /somelocaldir,但充其量这些文件被复制到远程服务器上某处的文件中。
有没有办法将文件从远程(tramp)dired 缓冲区复制到本地目录?我只使用了 6 个月的 emacs,所以如果有一种更好的完全不同的方法并且仍然让我使用 emacs(最好是 w/dired),那就太好了。
澄清一下,我对查看、编辑、列出等远程文件不感兴趣。我只想将文件从远程服务器复制到我的本地机器,与使用 scp 或 scp -r 获得的效果相同。我只是希望我可以做到这一点,而不必退出 emacs 甚至使用 eshell(但我可能只会这样做,直到我在这里得到答案)。
我正在尝试设置我的 Emacs TRAMP 以通过 ssh 访问远程文件,并且我想向 tramp 用于连接的 ssh 命令添加一些额外的参数。有没有办法做到这一点?
我可以通过直接操作变量来做到这一点tramp-methods
,但这很麻烦。
当我使用 ssh-keys 进行身份验证时,我遇到了针对特定主机的流浪汉问题。当我不使用 ssh-key 身份验证时它工作正常,但我想防止一直输入密码。
不知道是否相关,但我使用 zsh 作为 shell。
我遵循了将tramp-chunksize设置为500并将以下代码添加到.zshrc的提示:
if [[ "$TERM" == "dumb" ]]
then
unsetopt zle
unsetopt prompt_cr
unsetopt prompt_subst
unfunction precmd
unfunction preexec
PS1='$ '
fi
Run Code Online (Sandbox Code Playgroud)
但它不起作用,它仍然挂着消息 Tramp: Waiting for prompts from remote shell
关于如何防止这个烦人的问题的任何想法?谢谢。
除了打开远程文件,tramp 还可用于运行远程 shell。不幸的是,有一个问题。在本地机器上我有 zsh,而在远程服务器上只安装了 bash。发出 Mx shell 会导致exec: 24: /bin/zsh: not found
消息。
我可以以某种方式调整流浪汉来运行 bash 吗?
我使用 Bash 的 Emacs。我使用 Cx Cf 将 FTP 连接到服务器,以处理文件。从我的 OSX (10.6.x),我可以连接到我的所有服务器,但只有一个。从 Ubuntu,我可以连接到我的所有服务器,期间。我无法从 OSX 连接到的是一台运行 Filezilla Server 0.9.33 beta 版的 Windows Server 2003 SP2 服务器。如果我尝试连接到它,emacs 会给我以下信息:
C-x C-f
(backspace to clear ~/)
/ftp:
(Emacs pauses, loads TRAMP)
/ftp:josh@site.com:/
RET
(Password prompt)
******
RET
Opening blah...
Something PWD
Warning: Unable to get home directory
Listing /ftp:josh@site.com:/ ...
(Emacs times out at this point)
Run Code Online (Sandbox Code Playgroud)
FTP 日志,来自所有这些:
(001851) 5/13/2011 8:47:29 AM - (not logged in) (IP)> Connected, sending welcome message...
(001851) 5/13/2011 8:47:29 AM …
Run Code Online (Sandbox Code Playgroud) 如何使 Emacs TRAMP 模式更快?
我有ControlMaster auto
我的 SSH 配置,它正在工作:
$ time ssh -v debel echo foo
OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /Users/jmdeldin/.ssh/config
debug1: Applying options for *
debug1: Applying options for debel
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: auto-mux: Trying existing master
debug1: mux_client_request_session: master session id: 9
foo
debug1: mux_client_request_session: master session id: 9
real 0m0.014s
user 0m0.008s
sys 0m0.003s
Run Code Online (Sandbox Code Playgroud)
但是 TRAMP 非常缓慢(大约 3 s 文件保存),如在此截屏视频中所示。 …
当我想使用 TRAMP 在 Emacs 中通过 sftp 访问远程文件时,我希望 Emacs 为我提供来自我的 ssh 配置中主机名的补全。我怎样才能做到这一点?
例如,如果我的 ssh 配置中有两个主机,“alpha”和“bravo”,当我/sftp:a
在 find-file 提示符下键入时,它应该完成“alpha”。