配置 Sublime Text 4 作为 R/Python IDE

VScode太占用内存了,在作为R IDE的时候,经常后台有13个R的Front-end进程,再开启浏览器,浏览器一会就崩溃了。RStudio不是轻便IDE的第一选择。比来比去,就只有Sublime Text。

必须安装的Sublime Text插件:SendCode、Terminus。

配置 Sublime Text 4 作为 R IDE

  1. R已经安装并加入系统路径。
  2. 安装R包languageserver:在R中执行install.packages(languageserver)
  3. 安装ST4插件(ctrl+shift+p, install package)
  • R-IDE插件
  • SendCode for sending R code to Terminal / R GUI / RStudio.
  • Terminus for running R Console in Sublime Text.
  • Whitespace for cleaning whitespaces.
  1. ctrl+shift+p, SendCode: Choose Program,选择Terminus。
  2. ctrl+shift+p, Terminus: Open Default Shell,在打开的(标签)窗口中运行R,或Radian。
  3. 新建R脚本,CTRL+Enter发送当前行到R命令窗口,或者Ctrl+B编译文件。
  4. "查看->布局:2列"可使窗口并排显示,快捷键切换ctrl+shift+1ctrl+shift+2

上面4也可以通过编辑Sendcode的配置文件实现,通过"设置->Package settings->SendCode->setting"打开配置文件,添加如下内容:

	"prog": "terminus",
	"r":
	{
		"bracketed_paste_mode": false,
		"prog": "terminus",
	},

第5步可以通过快捷键运行R或Radian。"设置->热键设置"(Default (Windows).sublime-keymap),添加如下2部分内容:

    // Open R at current file directory
    {
      "keys": ["ctrl+alt+r"],
      "command": "terminus_open",
      "args": {
          "cmd": "D:/ProgramFiles/Coding/Miniconda3/Scripts/radian.exe",
          "cwd": "${file_path:${folder}}",
          "pre_window_hooks": [
           ["set_layout", {
              "cols": [0.0, 0.5, 1.0],
              "rows": [0.0, 1.0],
              "cells": [[0, 0, 1, 1], [1, 0, 2, 1]]
          }],
          ["focus_group", {"group": 1}]
        ] ,
      "title": "Rterm",
      "tag": "r"
      }
    },
    // Send code to Terminus
    {
      "keys": ["ctrl+enter"], "command": "send_code",
      "context": [
         { "key": "selector",
           "operator": "equal",
           "operand": "source.python,source.r,source.sql" }
      ],
    },

第一部分:快捷键ctrl+alt+r直接进入Radian
第二部分:设置Send Code发送的快捷键为ctrl+enter。注意这部分是通用的,只需要将"tag"加入"operand"中,如R脚本对应的是"source.r"(Python脚本对应的是"source.python",SQL脚本对应的是"source.sql")。后面不在说明本部分的配置,最后给出总的设置。

完成以上设置后,新建R脚本。如果不保存,在“工具,编译系统”中选择“R”。按快捷键ctrl+alt+r,自动打开一个相邻的窗口和并排的窗口,并在相邻窗口中自动进入Radian。将相邻的窗口关掉,鼠标点并排窗口,按快捷键ctrl+alt+r,自动进入Radian。在脚本中按ctrl+enter发送当前行或选定部分的代码到Radian,全部编译快捷键ctrl+B

在Python中安装Radian,主要配置文件中的路径要按照自己电脑的安装设置。如果不使用Radian,上面配置中"cmd"改为Rterm.exe,即(没有加路径,因为已经在系统路径上)

"cmd": "rterm.exe",

配置 Sublime Text 4 作为 Python IDE

配置为Python IDE的方式同R。也可以直接编辑配置文件实现,下面是配置文件的编辑。

"设置->热键设置"(Default (Windows).sublime-keymap),添加如下内容(注意本机ipython.exe的路径):

   //Terminus窗口打开ipython
    {
    "keys": ["ctrl+alt+i"],
    "command": "terminus_open",
    "args": {
        "cmd": "D:/ProgramFiles/Coding/Miniconda3/Scripts/ipython.exe",
        "cwd": "${file_path:${folder}}",
        "pre_window_hooks": [
         ["set_layout", {
            "cols": [0.0, 0.5, 1.0],
            "rows": [0.0, 1.0],
            "cells": [[0, 0, 1, 1], [1, 0, 2, 1]]
        }],
        ["focus_group", {"group": 1}]
        ] ,
        "title": "iPython",
        "tag": "python"
        }
    },

如果按上面完成了R的配置,Sendcode的配置文件("设置->Package settings->SendCode->setting")内容如下:

{
   "prog": "terminus",
   "r":
   {
	"bracketed_paste_mode": false,
	"prog": "terminus",
   },
   "python":
    {
        "bracketed_paste_mode": true,
        "paste_to_console": true,
        "prog": "terminus",
    },
}

"Bracketed Paste Mode"为"True"时,会在拷贝的文本前后加入标志字符串(开头\e[200~, 末尾\e[201~)
Send Code的原设置中,Python使用"Cdmer"及"paste_to_console": true,,现在使用了"terminus",把这部分设置要复制过来。否则发送过去的代码会有"%cpaste -q 此处是(缩进的)代码 --"提示语法错误如下:

  Cell In[1], line 5 
    -- 
      ^      
SyntaxError: invalid syntax 

编辑py文件,ctrl+alt+i直接进入ipython,ctrl+enter发送行到ipython

要添加其他语言,可以类似修改配置文件即可。

汇总

R、Python IDE的配置文件("设置->热键设置"(Default (Windows).sublime-keymap))如下

	{ "keys": ["alt+-"], "command": "insert_snippet", "args": {"contents": " <- "} },
	{ "keys": ["alt+shift+down"], "command": "duplicate_line" },
    // Send code to Terminus
    {
      "keys": ["ctrl+enter"], "command": "send_code",
      "context": [
         { "key": "selector",
           "operator": "equal",
           "operand": "source.python,source.r,source.sql" }
      ],
    },
    // Open R at current file directory
    {
      "keys": ["ctrl+alt+r"],
      "command": "terminus_open",
      "args": {
          "cmd": "D:/ProgramFiles/Coding/Miniconda3/Scripts/radian.exe",
          "cwd": "${file_path:${folder}}",
          "pre_window_hooks": [
           ["set_layout", {
              "cols": [0.0, 0.5, 1.0],
              "rows": [0.0, 1.0],
              "cells": [[0, 0, 1, 1], [1, 0, 2, 1]]
          }],
          ["focus_group", {"group": 1}]
        ] ,
      "title": "Rterm",
      "tag": "r"
      }
    },
   //Terminus窗口打开ipython
	{
    "keys": ["ctrl+alt+i"],
    "command": "terminus_open",
    "args": {
        "cmd": "D:/ProgramFiles/Coding/Miniconda3/Scripts/ipython.exe",
        "cwd": "${file_path:${folder}}",
        "pre_window_hooks": [
         ["set_layout", {
            "cols": [0.0, 0.5, 1.0],
            "rows": [0.0, 1.0],
            "cells": [[0, 0, 1, 1], [1, 0, 2, 1]]
        }],
        ["focus_group", {"group": 1}]
	    ] ,
	    "title": "iPython",
	    "tag": "python"
	    }
	},

Send Code 设置(SendCode.sublime-settings)("设置->Package settings->SendCode->setting")如下:

{
    "prog": "terminus",
    "r":
    {
	"bracketed_paste_mode": false,
	"prog": "terminus",
    },
    "python":
    {
        "bracketed_paste_mode": false,
        "paste_to_console": true,
        "prog": "terminus",
    },
}

posted @ 2023-06-01 09:52  hzworld  阅读(424)  评论(0编辑  收藏  举报