SendCode
将代码和文本发送到macOS和Linux终端、iTerm、ConEmu、Cmder、Tmux、Terminus;R (RStudio),Julia,IPython。
详细信息
安装数
- 总数 28K
- Win 12K
- Mac 11K
- Linux 5K
8月6日 | 8月5日 | 8月4日 | 8月3日 | 8月2日 | 8月1日 | 7月31日 | 7月30日 | 7月29日 | 7月28日 | 7月27日 | 7月26日 | 7月25日 | 7月24日 | 7月23日 | 7月22日 | 7月21日 | 7月20日 | 7月19日 | 7月18日 | 7月17日 | 7月16日 | 7月15日 | 7月14日 | 7月13日 | 7月12日 | 7月11日 | 7月10日 | 7月9日 | 7月8日 | 7月7日 | 7月6日 | 7月5日 | 7月4日 | 7月3日 | 7月2日 | 7月1日 | 6月30日 | 6月29日 | 6月28日 | 6月27日 | 6月26日 | 6月25日 | 6月24日 | 6月23日 | 6月22日 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 2 | 1 | 0 | 1 | 2 | 2 | 0 | 1 | 1 | 0 | 2 | 2 | 0 | 0 | 1 | 1 | 1 | 2 | 0 | 2 | 1 | 1 | 1 | 0 | 0 | 3 | 4 | 0 | 2 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 3 | 1 | 0 | 0 | 2 | 0 | 1 |
Mac | 2 | 1 | 2 | 2 | 1 | 1 | 2 | 0 | 1 | 0 | 0 | 3 | 2 | 3 | 3 | 0 | 1 | 0 | 0 | 2 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 0 | 6 | 1 | 3 | 0 | 1 | 2 | 3 | 0 | 0 | 1 | 2 | 1 |
Linux | 1 | 0 | 1 | 0 | 0 | 3 | 1 | 0 | 1 | 0 | 0 | 0 | 2 | 1 | 1 | 0 | 0 | 1 | 0 | 2 | 2 | 0 | 1 | 1 | 0 | 0 | 2 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 2 | 0 | 1 | 0 | 1 | 1 | 0 | 2 | 1 | 0 | 1 |
README
SendCode for Sublime Text
将代码和文本发送到macOS和Linux终端、iTerm、ConEmu、Cmder、Tmux、Terminus;R (RStudio),Julia,IPython。
以下程序支持
- Mac: Terminal、iTerm (>=2.9)、R GUI、RStudio Desktop、在Chrome和Safari上运行的RStudio和Jupyter
- Windows: Cmder、ConEmu、R GUI、RStudio Desktop
- Linux: Tmux、Screen、Gnome-Terminal、Pantheon-Terminal、Mate-Terminal、Konsole、RStudio Desktop
- Sublime插件: Terminus
安装
您可以通过Package Control安装SendCode。
- 如果您没有安装Package Control,请按照Package Control网站上的安装说明进行操作。
- 在Sublime Text中,输入 cmd+shift+p(Mac)或ctrl+shift+p(Windows/Linux)以打开命令面板。
- 在命令面板中开始输入
Package Control: Install Package
并选择弹出的选项。 - 在安装窗口中开始输入
SendCode
并选择弹出选项。 - SendCode应随即安装。
如果您使用Linux,我们可能需要安装xdotool来使用某些功能。Ubuntu用户可以使用
sudo apt-get install xdotool
如果找不到,您将接到下载二进制版本的提示。
用法
使用命令面板中的 SendCode: Choose Program
命令选择程序。在macOS、Windows和Linux上的默认程序分别为Terminal、Cmder和tmux。每个语法绑定到其自己的程序。例如,您可以将 R
绑定到R文件,将 tmux
绑定到Python文件。
有两种主要的热键组合
cmd+enter(Mac)或ctrl+enter(Windows/Linux)
如果选择了文本,则将文本发送到所选程序。如果没有选择文本,则发送当前块(如果找到)。最后,将光标移动到下一行。
cmd+b(Mac)或ctrl+b(Windows/Linux):源文件(仅R、Julia和Python(IPython))
SendCode使用Sublime构建系统源代码文件,您可能需要在弹出的窗口中选择
Source File
选项。
故障排除
- Python 控制台
假设使用了 IPython (5.0 或以上版本,或者任何支持括号粘贴模式的 repl)。
- radian 控制台
如果使用 radian,可能需要开启 bracketed_paste_mode
。
- Windows 上的 RStudio
确保使用 RStudio v1.1.383 或更高版本。
- Windows 上的 R Gui
在发送文本时,确保已打开相应的 R 程序。
- Windows 上的 Cmder/Conemu
您可能需要设置 SendCode 设置中的 ConEmuC.exe
路径。对于 Cmder,文件位于 <cmder 路径>\\vendor\\conemu-maximus5\\ConEmu\\ConEmuC.exe
。
- macOS 上的 Safari-Jupyter
您可能没有启用 AppleScript 的 JavaScript。请在《开发》菜单中查看“允许 Apple Events 使用 JavaScript”(需要在偏好设置中启用《开发》菜单)。
自定义快捷键
为您经常使用的命令创建自定义快捷键非常简单。例如,以下快捷键执行 R、Python 和 Julia 的更改工作目录命令。
[
{
"keys": ["ctrl+shift+h"], "command": "send_code",
"args": {"cmd": "setwd(\"$file_path\")"},
"context": [
{ "key": "selector", "operator": "equal", "operand": "source.r" }
]
},
{
"keys": ["ctrl+shift+h"], "command": "send_code",
"args": {"cmd": "%cd \"$file_path\""},
"context": [
{ "key": "selector", "operator": "equal", "operand": "source.python" }
]
},
{
"keys": ["ctrl+shift+h"], "command": "send_code",
"args": {"cmd": "cd(\"$file_path\")"},
"context": [
{ "key": "selector", "operator": "equal", "operand": "source.julia" }
]
}
]
SendCode 在 cmd
字段中扩展以下变量
$file
:文件的完整路径$file_path
:包含文件的目录$file_name
:文件名$file_base_name
:不带扩展名的文件名$file_extension
:文件扩展名$folder
:当前窗口的第一个文件夹$project_path
:sublime-project 存放的目录$current_folder
:包含当前视图的窗口的文件夹$selection
:所选文本,或光标下的单词$line
:当前行号
它还支持变量占位符,详细信息请参阅 非官方文档。
${file_path:$folder}
如果有当前文件的目录,则会发出目录,否则发出当前窗口的第一个文件夹。
您无需担心引号和反斜杠之间的转义,SendCode 将为您处理。
prog
参数确定使用哪个程序
[
{
"keys": ["ctrl+shift+enter"], "command": "send_code",
"args": {"cmd": "\n", "prog": "tmux"}
}
]
用户设置
您可以在 首选项:SendCode 设置
中找到一些设置。也可以在 sublime-project
中指定项目级别的设置。
{
"settings": {
"SendCode": {
"prog": "terminus",
"r" : {
"bracketed_paste_mode": true
}
}
}
}
块扩展
SendCode 使用以下逻辑在发送代码时扩展光标。
- 将当前行扩展为匹配
()
、[]
和{}
。 - R
- 如果上一行以管道操作符
%>%
结尾,则向后扩展 # %%
修饰符#+
转换修饰符#'
roxygen 修饰符
- 如果上一行以管道操作符
- Julia
begin
、end
缩进成对。# %%
修饰符
- Python
- 缩进
# %%
修饰符。
- (请参阅设置
block_start_pattern
和block_end_pattern
) - Markdown 块代码
- 将光标放在 ``` 行上以发送整个块。