sds*_*sds 11 emacs r gnu-screen tramp tmux
我想运行R一个远程下一个盒子地方 Emacs(我不希望在远程机器上运行的Emacs).
(let ((default-directory "/user@remote:~"))
(R))
Run Code Online (Sandbox Code Playgroud)
一切正常,但是当连接remote丢失时,R死亡.这并不好,因为这意味着我必须在重新R启动后重新加载所有数据,这需要时间.
是否有可能告诉TRAMP使用持久终端?(GNU Screen或tmux或Mosh或dtach)
另请参见emacs-develthread tramp:sshx:(screen | tmux).
以下是如何在远程屏幕会话中使用ES运行R:
ssh到远程主机(在emacs之外)
开始屏幕会话
分开它
在emacs(M-x shell)中打开shell
在emacs shell中再次ssh到远程主机
恢复屏幕会话(screen -r)
开始R.
最后使用M-x ess-remote在你启动R的shell缓冲区中将ESS附加到R进程
此帖子中有更多详细信息,屏幕截图和键绑定http://blog.nguyenvq.com/2010/07/11/using-r-ess-remote-with-screen-in-emacs/
以下是使用dtach的替代方法:
(defvar R-remote-host "remote-server")
(defvar R-remote-session "R")
(defvar R-remote-directory "~")
(defun R-remote (&optional remote-host session directory)
"Connect to the remote-host's dtach session running R."
(interactive (list
(read-from-minibuffer "R remote host: " R-remote-host)
(read-from-minibuffer "R remote session: " R-remote-session)
(read-from-minibuffer "R remote directory: " R-remote-directory)))
(pop-to-buffer (make-comint (concat "remote-" session)
"ssh" nil "-t" "-t" remote-host
"cd" directory ";"
"dtach" "-A" (concat ".dtach-" session)
"-z" "-E" "-r" "none"
inferior-R-program-name "--no-readline"
inferior-R-args))
(ess-remote (process-name (get-buffer-process (current-buffer))) "R")
(setq comint-process-echoes t))
Run Code Online (Sandbox Code Playgroud)
打电话M-x R-remote RET RET RET RET.
这个对我有用.
PS.答案的问题(而不是在问题的要求)是使用EIN与Jupyter.
| 归档时间: |
|
| 查看次数: |
1514 次 |
| 最近记录: |