ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

SendCode

by randy3k ST3

将代码和文本发送到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

源代码
raw.​githubusercontent.​com

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选项。

故障排除

  1. Python 控制台

假设使用了 IPython (5.0 或以上版本,或者任何支持括号粘贴模式的 repl)。

  1. radian 控制台

如果使用 radian,可能需要开启 bracketed_paste_mode

  1. Windows 上的 RStudio

确保使用 RStudio v1.1.383 或更高版本。

  1. Windows 上的 R Gui

在发送文本时,确保已打开相应的 R 程序。

  1. Windows 上的 Cmder/Conemu

您可能需要设置 SendCode 设置中的 ConEmuC.exe 路径。对于 Cmder,文件位于 <cmder 路径>\\vendor\\conemu-maximus5\\ConEmu\\ConEmuC.exe

  1. 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
    • beginend 缩进成对。
    • # %% 修饰符
  • Python
    • 缩进
    • # %% 修饰符。
  • (请参阅设置 block_start_patternblock_end_pattern
  • Markdown 块代码
    • 将光标放在 ``` 行上以发送整个块。