- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用本地 emacs 实例 (aquamacs) 在远程服务器上运行 R 进程,并且我想自动执行连接到我的服务器的过程。流程如下:
[在 emacs 中]
M-x shell
[在结果控制台中]
TERM=xterm
ssh -Y -C <my remote server>
screen -rd [and/or] R
[在 emacs 中]
M-x ess-remote
r
我在这里发现了这种通用方法:http://blog.nguyenvq.com/2010/07/11/using-r-ess-remote-with-screen-in-emacs/ 。 -Y -C 选项允许您使用 xterm 查看绘图。我不知道 lisp,尽管我在 google 上搜索了一下,但我似乎无法拼凑出如何实际定义一个函数来自动执行此操作(例如,在 .emacs.el 中)。有人实现过类似的事情吗?
最佳答案
假设您只想调用 shell
在代码中。在 Lisp 中,一切都是用括号括起来的前缀表示法。因此,我们将其输入缓冲区(例如临时缓冲区):
(shell)
将指针移至右括号后的行尾,然后输入 <C-x C-e>
执行 Lisp 代码。您应该看到 shell
函数被调用。
现在,让我们将其设为一个函数,这样我们就可以向其中添加其他内容。创建函数的命令是defun
,它接受函数的名称、参数列表(在括号中),然后是函数的主体:
(defun automate-connection ()
(shell))
将光标移动到代码末尾,点击 <C-x C-e>
,并且函数将被定义。您可以通过执行从 Lisp 调用它
(automate-connection)
好的,现在我们只需要将一些文本放入 shell 缓冲区即可。
(defun automate-connection ()
(shell)
(insert "TERM=xterm"))
现在,当我们运行它时,我们会将“TERM=xterm”放入 shell 缓冲区中。但它实际上并不发送命令。让我们尝试换行。
(defun automate-connection ()
(shell)
(insert "TERM=xterm\n"))
这会插入一个换行符,但实际上并没有使命令运行。为什么不?让我们看看回车键有什么作用。转到您的*shell*
缓冲区,然后输入 <C-h c>
,然后按回车键。 ( <C-h c>
运行 describe-key-briefly
,它打印通过按给定键调用的函数的名称)。这就是说,当你按 RET 时,它并不是放置换行符,而是实际调用 comint-send-input
。那么让我们这样做:
(defun automate-connection ()
(shell)
(insert "TERM=xterm")
(comint-send-input))
现在,当您从任何 Lisp 代码运行 `(automate-connection) 时,您应该会收到发送的给定内容。我将其作为练习留给读者添加其他命令。
但是等等!我们还没有真正完成,是吗?我假设您不想移动到 Lisp 暂存缓冲区,请输入 (automate-connection)
,然后评估该代码。您可能只想输入 ,然后就到此为止了。默认情况下,您不能使用我们刚刚创建的函数来执行此操作。幸运的是,实现这一点很简单:只需添加对 (interactive)
的调用即可。在你的函数中:
(defun automate-connection ()
(interactive)
(shell)
(insert "TERM=xterm")
(comint-send-input))
现在你可以随意调用它,它会打开 *shell*
缓冲区,放入文本,然后告诉 Emacs 让 shell 运行该文本。
关于r - 如何自动化这些 emacs ESS (ess-remote) 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13518185/
在劣等模式下使用 ESS[R] 时,我可以使用 C-c C-p 检索最近的命令输出,将光标移动到上一个命令输出。或者,我可以使用 C-up,它基本上从劣等进程复制最近输入的命令(类似于 readlin
我经常发现自己有一堆 R 进程在 ESS 缓冲区中运行。有一个方便的 Lisp 函数 ess-request-a-process 请求 R 进程,并将其放在前面。唯一的缺点是它以某种方式默认为 S,因
我正在使用本地 emacs 实例 (aquamacs) 在远程服务器上运行 R 进程,并且我想自动执行连接到我的服务器的过程。流程如下: [在 emacs 中] M-x shell [在结果控制台中]
使用 ess-rdired为了浏览对象,我遵循 ESS 手册并将以下内容添加到我的 .emacs : (autoload 'ess-rdired "ess-rdired" "View *R* ob
我以为你设置了缩进级别 (setq ess-indent-level 2) 但我一直得到 4 个空格。例如,我曾经写过 foo <- function(x) x + 2 但是现在,ESS 将第二行
我正在使用 ESS(12.04)、emacs(23.3.1) 和 R(2.14.1)。它工作得很好,除了如果函数在包内,我无法打开 R 的帮助。例如: 在 R 中(iESS 模式) > ?ls 我会得
我总是喜欢水平分割,因为屏幕有更多的水平空间。在 python 模式下,我可以通过设置来实现这一点 (py-split-windows-on-execute-function (quote spli
我想要新的 R 运算符 |>获得与 magrittr::%>% 相同的语法着色在 ESS 中。我怎样才能做到这一点? 最佳答案 在 ess-custom 中有很多选项可以修改语法高亮。 , 见 C-h
http://picasaweb.google.com/lh/photo/F-p2qK3itxJsgj1tLLGsow?feat=directlink 如果你看图片,在最小缓冲区底部的 R 帮助文件中
有时,在我向 ESS 中的 R 提交计算密集型运行后,我的整个屏幕就会卡住。当这种情况发生时,Emacs 命令都不起作用(我使用运行 XP 的笔记本电脑)。我的粗略解决方案是按 Control-Alt
有人知道是否可以在没有 RStudio 的情况下使用这些 rs_ 函数吗?我从 coursera 类(class)统计推断中提取了这个示例, library(UsingR); data(galton)
我想询问普通 ESS/R 用户他们经常使用哪些键绑定(bind)以及使用 ESS/R 的技巧。 最佳答案 我在 .emacs 文件中设置了多个快捷方式。最有用的是: C-tab 在 R 命令行和文件之
我一直在尝试简单地将 wav 文件加载到 AudioChannel 对象中并播放它,但它一直给我一个错误,指出“无法加载声音 test.wav” 我正在做的是: AudioChannel curren
ESS 允许我们缩进一行和一个表达式。是否有用于缩进缓冲区的键绑定(bind)?如果没有,我们可以创建它吗? 最佳答案 正如其他人所说,您可以标记整个缓冲区 C-x h然后使用 C-M-\ 缩进该区域
有没有办法在所有缓冲区中启用公司模式... ;; enable Company mode in all buffers (add-hook 'after-init-hook 'global-compa
我有一个新的 mac 并且已经下载了 ESS-emacs 并且一直在运行 R。但是它没有使用 plot() pie() 或 hist() 生成任何图。 我试过 show()、X11() 和 pdf()
在 iESS[R] 缓冲区内移动非常缓慢 - 为此我使用 Alt+p/Alt+n 或 Ctrl+p/Ctrl+n。当我尝试遍历 iESS[R] 缓冲区时,我确实看到迷你缓冲区中显示了“帮助”。不确定这
我正在使用 GNU/Linux 发行版(Arch,如果相关)、Emacs v23.2.1、ESS v5.9 和 AucTeX v11.86。 我想设置 AucTeX 来识别 .Rnw 文件,所以我可以
我对 emacs 和贝叶斯数据分析以及 JAGS 软件比较陌生。我想修改 ess jags-d.el 文件,以便为 = (point) (+ assign-len (point-min))) ;che
Ctrl-c Ctrl-v 让我在光标位置查看函数的文档。但是我查看函数源代码的键顺序是什么(例如 Rstudio 中的 F2 键)?我不想使用debug功能呢。 最佳答案 Ctrl-c Ctrl-e
我是一名优秀的程序员,十分优秀!