4

我一直在努力在我的 aquamacs 上完成一项简单的任务。

我有一个通过 ssh 在远程服务器上运行的 R 会话。

我的 Aquamacs 在我的机器上本地运行。

我想要的是能够将当前行或当前选择发送到 iterm2 上的活动 R 会话。这可以通过带有插件 sendText 的命令“Cmd-Enter”在 sublime text 2 上轻松完成。

我们怎样才能完成这个简单的任务?

最好的,

4

1 回答 1

2

我遇到了同样的问题,并找到了以下解决方案。我修改了(非常轻微地)这个要点,并将它作为一个包添加到 Aquamacs。

以下是基本步骤:

将上面的 gist 复制到一个新文件中,然后将函数更改iterm-send-string为以下内容:

(defun iterm-send-string (str)   
  "Send STR to a running iTerm instance."
  (let* ((str (iterm-maybe-remove-empty-lines str))
         (str (iterm-handle-newline str))
         (str (iterm-escape-string str)))
    (shell-command (concat "osascript "
                          "-e 'tell app \"iTerm2\"' "
                          "-e 'tell current window' "
                          "-e 'tell current session' "
                          "-e 'write text \"" str "\"' "
                          "-e 'end tell' "
                          "-e 'end tell' "
                          "-e 'end tell' "))))

要使其成为一个包,您可以将以下内容添加到文件顶部

;;; iterm.el --- sends selections to iTerm.app -*- lexical-binding: t; -*-

;; modified from: https://gist.github.com/johnmastro/88cc318f4ce33b626c9d

;; Author: David Little <david.frank.little@gmail.com>
;; Keywords: lisp
;; Version: 0.0.1

;;; Commentary:

;; Works on Mac OS X: sends a selction to iTerm
;; To match SublimeText's key binding:
;; (global-set-key (kbd "<C-return>") 'iterm-send-text)

;;; Code:

然后你只需要打电话M-x package-install-file。一旦您将iterm-send-text功能绑定到快捷方式(例如C-return在上面的评论中),您应该开始做生意了!

于 2016-06-14T22:19:02.153 回答