從 RStudio 搬到 Positron · 第 6 單元
一句話總結
**Snippet 幫你插入現成的程式碼骨架,擴充套件市集比 RStudio addins 大得多,而大部分既有的 RStudio addins 也能用 R: Run RStudio Addin 直接在 Positron 執行。**
你會學到
- 插入與自訂程式碼片段(snippet)
- 尋找與安裝擴充套件,包括 RStudio 經典配色主題
- 在 Positron 執行既有的 RStudio addin
開始前
需要會開啟與搜尋 Command Palette(第 1 單元)。
內容筆記
程式碼片段(Snippets)
Snippet 會插入常用寫法的現成範本。例如打 for 後選擇對應的 snippet,就會插入:
for (variable in vector) {
# code to repeat
}
接著按 Tab 在 variable、vector、# code to repeat 三個佔位符之間跳。
在 R 檔打 for 之後跳出的自動完成清單,其中有一項是 for 迴圈的 snippet,可以選擇插入
Positron 內建 R 保留字的 snippet:if、while、for、function。
馬上試
在 R 檔打 for,從自動完成清單選 snippet,再按 Tab 逐一跳過佔位符。
成功的樣子:游標依序從 variable 跳到 vector,再跳到迴圈內容。
自訂 snippet:在 Command Palette 執行 Snippets: Configure Snippets。
格式不同
Positron 用 TextMate snippet 語法,和 RStudio 的格式不同。RStudio 預設 snippet 已經有人轉成 Positron 格式,放在 GitHub 上 posit-dev/ark 專案的 r.code-snippets 檔,可以直接參考。
擴充套件(Extensions)
擴充套件可以替 Positron 增加預設以外的功能,角色類似 RStudio addins,但市集大得多。
打開方式:點 Activity Bar 的 Extensions 圖示,或在 Command Palette 執行 Extensions: Focus on Extensions View,再用名稱或關鍵字搜尋。
R 使用者常用的擴充套件:
| 擴充套件 | 用途 |
|---|
| Tomorrow Night Bright (R Classic) | 移植到 Positron 的 RStudio 深色主題 |
| Indent-Rainbow | 用顏色區分縮排層級 |
| Rainbow CSV | 用顏色區分 CSV 欄位,方便編輯 |
| GitHub Actions | 在 IDE 裡操作 GitHub Actions |
| GitLab Workflow | GitLab 支援 |
| Project Manager | 快速切換專案 |
馬上試
執行 Extensions: Focus on Extensions View,搜尋「Tomorrow Night Bright (R Classic)」,按 Install。
成功的樣子:在 Preferences: Color Theme 裡可以選它,編輯器變成 RStudio 經典深色配色。想回到 Posit 預設配色,在清單捲到 Light 區選回即可。
擴充套件管理員的安裝流程:在 Activity Bar 點 Extensions 圖示,於左側搜尋框輸入名稱,點搜尋結果查看詳細頁,再按藍色 Install 按鈕安裝 Tomorrow Night Bright (R Classic)
- 你也可以用 TypeScript/JavaScript 寫自己的擴充套件,能做到的事遠超過 RStudio addins。
- 很多軟體公司提供免費擴充套件,讓你在 Positron 裡使用他們的服務,例如 SAS、Snowflake、Databricks、DuckDB。工作上有用到的軟體,可以先到市集搜尋看看。
執行既有的 RStudio addins
Positron 透過 rstudioapi 套件的相容層(shims)支援大部分 RStudio addins。在 Command Palette 執行 R: Run RStudio Addin 即可。例如裝了 reprex 套件後,就能從這裡啟動它的 addin 來製作可重現範例。
關鍵詞
- Snippet(程式碼片段):打關鍵字就能插入的程式碼範本,用 Tab 在佔位符之間跳
- TextMate snippet 語法:Positron(及 VS Code)的 snippet 格式,與 RStudio 不同
- Extension(擴充套件):從市集安裝的外掛,功能類似但多於 RStudio addins
- rstudioapi shims:讓 RStudio addins 能在 Positron 執行的相容層
可執行要點
📝 隨堂測驗(點選項作答)
插入 snippet 後,要怎麼在佔位符之間移動?
RStudio 的 snippet 檔可以直接複製到 Positron 用嗎?
想在 Positron 執行既有的 RStudio addin,要用哪個指令?