如何让ESS识别R中的动态提示?

时间:2013-03-06 19:26:30

标签: r command-prompt ess

我按照这里的建议...... R: Display a time clock in the R command line让我的R提示显示我上次输入命令的时间。但现在M-rM-p被破坏了,因为ESS不再将我不断变化的命令提示识别为命令行的开头。

是否有人知道要更改的选项,以便为了必须检测提示的所有目的,而不是匹配整个提示字符串,ESS将只匹配它的常量尾端,或者更好的是,像“^”这样的正则表达式[0-9] {6} [0-9] {2}:[0-9] {2}>“

感谢。

1 个答案:

答案 0 :(得分:0)

我的ess/ess-custom.el包含以下几行:

;; does it make sense to customize here, as we currently set this *directly*
;; in the FOO-BAR-cust-alist's ???
;; VS: Right. It only confuses users. It should be set in post-run-hook if
;; desired;  inferior-S-prompt should be customized instead.
(defvar inferior-ess-primary-prompt "> "
  "Regular expression used by `ess-mode' to detect the primary prompt.")

(make-variable-buffer-local 'inferior-ess-primary-prompt)
;; (setq-default inferior-ess-primary-prompt "> ")

(defvar inferior-ess-secondary-prompt nil
  "Regular expression used by ess-mode to detect the secondary prompt.
(This is issued by S to continue an incomplete expression).
Set to nil if language doesn't support secondary prompt.")
;; :group 'ess-proc
;; :type 'string)

(make-variable-buffer-local 'inferior-ess-secondary-prompt)
;; (setq-default inferior-ess-secondary-prompt "+ ")

;; need to recognise  + + + > > >
;; and "+ . + " in tracebug prompt
(defcustom inferior-S-prompt "[]a-zA-Z0-9.[]*\\([>+.] \\)*[+>] "
  "Regexp used in S and R inferior and transcript buffers for prompt navigation.

You can set it to \"[]a-zA-Z0-9.[]*\\(> \\)+\" if you want to
skip secondary prompt when invoking `comint-previous-prompt'.
 "
  :group 'ess-proc
  :type 'string)

所以我希望自定义这些变量中的任何一个都会有所帮助。可能从可自定义的那个开始,即inferior-S-prompt