1

我从 Vincent Goulet 为 Windows XP 安装了一个修改后的 Emacs 版本,我想使用 ess-remote 运行和编辑包含在远程 Unix 服务器上的 R 脚本。经过大量搜索后,我可以通过以下方式连接到远程 R 会话:

  1. 打开一个shell提示符M-x shell
  2. 输入以下命令:plink -X -C username@server
  3. 输入密码后,我用一个简单的命令在 shell 中启动 RR
  4. 使用命令将其分配为远程进程M-x ess-remote

虽然我能够成功地与 R 交互,但我总是会收到双重提示,更糟糕的是,如果打开某个函数的帮助文件,我会在同一个 R 进程缓冲区中看到乱码文本,而不是打开一个带有清晰 R 帮助的新缓冲区文本。如何让任何帮助缓冲区像通常的 emacs 和 R 交互一样在单独的窗口中打开,以及如何在执行 shell 时摆脱双重提示?

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

c:\Documents and Settings\username>plink -X -C username@remoteserver
plink -X -C username@remoteserver
username@remoteserver's password: 

[username@remoteserver ~]$ R
R

R version 2.11.0 (2010-04-22)
Copyright (C) 2010 The R Foundation for Statistical Computing
ISBN 3-900051-07-0

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.


Welcome at Sat Jul 24 11:50:45 2010 
> 
> options(STERM='iESS')
options(STERM='iESS')
> 
> x <- c(1,2,3)
> 
> x
[1] 1 2 3
> 
> ?mean(x)
  [?1049h[?1h=[24;1H[Kmean                   package:base                    R        Documentation

Arithmetic Mean

Description:

 Generic function for the (trimmed) arithmetic mean.

Usage:

 mean(x, ...)

 ## Default S3 method:
 mean(x, trim = 0, na.rm = FALSE, ...)

Arguments:

   x: An R object.  Currently there are methods for numeric/logical
      vectors and date, date-time and time interval objects, and
      for data frames all of whose columns have a method.  Complex
      vectors are allowed for 'trim = 0', only.

trim: the fraction (0 to 0.5) of observations to be trimmed from

[24;1H[K:[24;1H[24;1H[K 在计算平均值之前,'x' 的每一端。trim [24;1H[K: [24;1H[24;1H[K 超出该范围的值被视为最近的端点。

na.rm: a logical value indicating whether 'NA' values should be
      stripped before the computation proceeds.

 ...: further arguments passed to or from other methods.

Value:

 For a data frame, a named vector with the appropriate method being
 applied column by column.

 If 'trim' is zero (the default), the arithmetic mean of the values
 in 'x' is computed, as a numeric or complex vector of length one.
 If 'x' is not logical (coerced to numeric), numeric (including
 integer) or complex, 'NA_real_' is returned, with a warning.

 If 'trim' is non-zero, a symmetrically trimmed mean is computed
 with a fraction of 'trim' observations deleted from each end
 before the mean is computed.

References:

[24;1H[K:[24;1H[24;1H[K     Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) _The New S
[24;1H[K:[24;1H[24;1H[K     Language_.  Wadsworth & Brooks/Cole.
[24;1H[K:
[24;1H[24;1H[K
[24;1H[K:[24;1H[24;1H[KSee Also:
[24;1H[K:
[24;1H[24;1H[K
[24;1H[K:[24;1H[24;1H[K     'weighted.mean', 'mean.POSIXct', 'colMeans' for row and     column
[24;1H[K:
[24;1H[24;1H[K     means.
[24;1H[K:[24;1H[24;1H[K
[24;1H[K:
[24;1H[24;1H[KExamples:
[24;1H[K:[24;1H[24;1H[K
[24;1H[K:
[24;1H[24;1H[K     x <- c(0:10, 50)
[24;1H[K:[24;1H[24;1H[K     xm <- mean(x)
[24;1H[K:
[24;1H[24;1H[K     c(xm, mean(x, trim = 0.10))
[24;1H[K:[24;1H[24;1H[K     
[24;1H[K:
[24;1H[24;1H[K     mean(USArrests, trim = 0.2)
[24;1H[K:[24;1H[24;1H[K     
[24;1H[K:
[24;1H[24;1H[K
[24;1H[K:[24;1H[24;1H[K[24;1H[K(END) 
[24;1H[24;1H[K[24;1H[K(END) [24;1H[24;1H[K[24;1H[K(END) 
[24;1H[24;1H[K[24;1H[K(END) [24;1H[24;1H[K[24;1H[K(END) 
[24;1H[24;1H[K[24;1H[K(END) [24;1H[24;1H[K[24;1H[K(END) 
[24;1H[24;1H[K[24;1H[K(END) [24;1H[24;1H[K[24;1H[K(END) 
[24;1H[24;1H[K[24;1H[K(END) [24;1H[24;1H[K[24;1H[K(END) 
[24;1H[24;1H[K[24;1H[K(END) [24;1H[24;1H[K[24;1H[K(END) 
[24;1H[24;1H[K[24;1H[K(END) [24;1H[24;1H[K[24;1H[K(END) 
[24;1H[24;1H[K[24;1H[K(END) [24;1H[24;1H[K[24;1H[K(END) 

以下是 site-start.el tramp 包含的内容以供参考:

(require 'tramp)
;(setq tramp-chunksize "500")
(setq tramp-default-method "plink")

(setq exec-path
      (cons
   (expand-file-name "C:/putty_shortcut/")
        exec-path)) 
4

1 回答 1

0

对于颜色代码问题,您需要在 shell 模式下启用 ansi-color 支持:

;; Shell mode
(add-hook
 'shell-mode-hook
 (function (lambda ()
             (ansi-color-for-comint-mode-on))))

我在您的示例中没有看到双重提示,但您可以创建一个自定义 shell 自动执行文件来设置自定义提示:

(编辑:啊,你的意思是R中的双重>提示。我不知道,对不起。我会在下面留下评论,以防它对某人有用......)

使用的程序来自变量“explicit-shell-file-name”,或(如果为 nil)来自 ESHELL 环境变量,或(如果为 nil)来自“shell-file-name”。如果文件 `~/.emacs_SHELLNAME' 存在,或 `~/.emacs.d/init_SHELLNAME.sh',它作为初始输入给出

例如,init_bash.sh可能包含export PS1="\n\u@\h \w $ "一个简单的无色提示。

有关C-h f shell RET更多信息,请参阅。

于 2010-07-25T06:08:36.683 回答