【发布时间】:2013-05-11 11:01:48
【问题描述】:
我使用 RStudio 来处理 R 编程语言,并找到 ctrl+enter 快捷方式向控制台发送一条线,这对我的工作进行故障排除非常有用。
现在我正在使用 sublimetext2,我想在 RStudio 中做同样的事情,向控制台发送一行。
有没有办法将现有线路发送到控制台或 SublimeREPL 控制台?
【问题讨论】:
标签: r keyboard-shortcuts sublimetext2
我使用 RStudio 来处理 R 编程语言,并找到 ctrl+enter 快捷方式向控制台发送一条线,这对我的工作进行故障排除非常有用。
现在我正在使用 sublimetext2,我想在 RStudio 中做同样的事情,向控制台发送一行。
有没有办法将现有线路发送到控制台或 SublimeREPL 控制台?
【问题讨论】:
标签: r keyboard-shortcuts sublimetext2
现在可以将原始 R 代码发送到 SublimeREPL:
R Application Switch
SublimeREPL
激活 SublimeREPL 后,您可以使用 Cmd/Ctrl+Enter 向其发送原始 R。
请注意,默认情况下,SublimeREPL 不会显示发送进来的代码;它只会显示输出。如果您还想查看代码,可以更改用户设置:
Preferences -> Package settings -> SublimeREPL -> Settings - User
show_transferred_text 设置。例如,如果您没有任何其他设置,您的设置应如下所示:
{
"show_transferred_text": true
}
【讨论】:
除了设置自己的键绑定,您还可以简单地安装Enhanced-R:
在崇高:
Install Package”Enhanced-R
如果您主要将 Sublime 用于 R,那么您可以为整个应用程序设置默认语法。或者您可以按文件更改它(Cmd + Shift + P 再次,然后开始输入Syntax Enhanced R)
然后,就像您在 RStudio 中习惯的那样,您只需点击 Cmd + enter 即可将代码发送到控制台或 R.app 等
【讨论】:
sublimeREPL 和Enhanced-R。就个人而言,我已经取消了sublimeREPL,因为处理窗口大小变得很烦人。我宁愿有两个窗口,我可以在CMD-tab(或CMD-`)之间
"App" : "Terminal",但它仍然打开并使用R.app,只要我点击 cmd+enter。欢呼
我不了解控制台,但 SublimeREPL 可以做到这一点。
只要你同时打开一个 REPL 和一个相同语言的文件,你就可以通过 SublimeREPL Source Buffer Keys 向你打开的 REPL 发送一行(或选择或文件)。默认情况下,Ctrl+, 后跟 l 将当前行发送到 REPL,但您可以通过将这些行添加到Preferences -> Key Bindings – User 文件的顶部:
{ "keys": ["ctrl+enter"], "command": "repl_transfer_current", "args": {"scope": "lines"}, "context":
[
{ "key": "selector", "operator": "equal", "operand": "source.python", "match_all": true }
]
},
其他可用范围(来自 Preferences -> Browse Packages -> SublimeREPL/Default (Windows).sublime-keymap)是 selection、file 和 block(仅限 Clojure)。如果您想向您的 REPL 发送一行但不立即解析它,您可以将 "action":"view_write" 添加到 args 对象,如下所示:
{ "keys": ["ctrl+enter"], "command": "repl_transfer_current", "args": {"scope": "lines", "action": "view_write"}, "context":
[
{ "key": "selector", "operator": "equal", "operand": "source.python", "match_all": true }
]
},
有关键绑定的更多信息,请参阅Unofficial Sublime Text 2 Docs。
如果 REPL 在与源不同的选项卡中打开(而不是单独的视图),源缓冲区热键将不聚焦 REPL。我确信可以实现某种选项卡交换切换键,但这听起来像是另一个问题的问题。
【讨论】:
Key Bindings – User 文件旁边的第一个文件中,并将 "keys" 值调整为您希望发送但不评估密钥为 ctrl+shift+enter 的任何值。然后ctrl+enter 将发送并 评估该行,而ctrl+shift+enter 将发送并不 评估该行。如果您对自定义按键不感兴趣,默认的发送但不评估组合键是ctrl+shift+,,后跟l。
>>>。我希望的是,如果我有例如import imaplib,我做了ctrl+enter,我会看到>>>import imaplib,它会评估,然后是一个新的>>>。您的代码是否会产生这种效果?再次感谢您对此的帮助。