VS Code Preferences

settings
VS Code vs. RStudio
Author

Zhenglei Gao

Published

July 30, 2025

VS Code Keyboard Shortcuts

  • Commenting code lines or block

Try Ctrl+# first, as that’s the most common solution for German keyboards. If that doesn’t work, the Ctrl+K Ctrl+C (Ctrl+K Ctrl+U for uncommenting)combination should definitely work!

roxgen

The keyboard shortcut for adding roxygen function comments in VS Code with the R extension is:

Ctrl+Shift+Alt+R - Insert roxygen skeleton

If that does not work, it is also possible to use a snippet:

{
  "r.snippets": {
    "roxygen": {
      "prefix": "rox",
      "body": [
        "#' ${1:Title}",
        "#'",
        "#' @param ${2:param} ${3:description}",
        "#'",
        "#' @return ${4:return description}",
        "#' @export",
        "#'",
        "#' @examples",
        "#' ${5:example}",
        "$0"
      ],
      "description": "Roxygen documentation template"
    }
  }
}

After you’ve successfully added the roxygen snippet to your r.json file. Now here’s how to use it:

How to use your new snippet: 1. Open your R file (utils-vcop.R) 2. Position your cursor above the function where you want to add documentation 3. Type rox (the prefix you defined) 4. Press Tab - this will expand the snippet 5. Fill in the placeholders: - ${1:Title} - Replace with your function title - ${2:param} - Replace with parameter name - ${3:Description} - Replace with parameter description - ${4:Return description} - Describe what the function returns - ${5:example_code} - Add example usage 6. Press Tab to move between placeholders 7. Press Esc when done

That’s it! Your custom roxygen snippet is now ready to use. Just type rox + Tab whenever you need to document an R function.

Formatting

In VS Code, the keyboard shortcut to auto-indent/format code (equivalent to RStudio’s Ctrl+A + I) is:

  • For the entire document: Shift+Alt+F - Format entire document
  • For selected code only: Ctrl+K Ctrl+F - Format selection

Alternative shortcuts:

  • Ctrl+Shift+I - Format selection (may work depending on your keybindings)
  • Right-click → “Format Document” or “Format Selection”

Some of My Settings

Comparison of Editing R, Rmd, Qmd in VS Code and RStudio

Below is a comparison of editing R, Rmd (R Markdown), and Qmd (Quarto Markdown) files in Visual Studio Code (VS Code) and RStudio, focusing on their capabilities and keyboard shortcuts. Both IDEs are popular for R programming and markdown-based workflows, but they cater to slightly different needs and user preferences.

> Generated by Grok

1. Overview of R, Rmd, and Qmd Editing

  • R Files: Plain R scripts (.R) contain R code for data analysis, scripting, or package development.
  • Rmd Files: R Markdown files (.Rmd) combine R code chunks with markdown text, enabling reproducible documents like reports, presentations, or articles.
  • Qmd Files: Quarto Markdown files (.Qmd) are an evolution of Rmd, developed by Posit, supporting multiple languages and enhanced features for publishing documents, presentations, and websites. Quarto is designed to be a more flexible, next-generation version of R Markdown.

Both VS Code and RStudio support editing these file types, but their approaches differ in terms of interface, customization, and integration.


2. Capabilities Comparison

Feature VS Code RStudio
R Script Editing - Requires the R Extension for VS Code (REditorSupport/vscode-R).
- Offers syntax highlighting, code completion, and hover documentation.
- Integrated terminal for running R scripts.
- Data viewer for data frames and matrices, plot viewer (via httpgd), and workspace viewer for global variables.
- Supports RStudio add-ins and remote development (SSH, Containers, WSL).
- Native support for R, optimized for R workflows.
- Environment pane to view global variables.
- Built-in plot viewer and data viewer.
- Seamless integration with R console for interactive execution.
- Code diagnostics and completion tailored for R.
Rmd Editing - Supported via the R Markdown extension (R Markdown All in One).
- Syntax highlighting and chunk execution with Ctrl+Shift+Enter (run source) or Ctrl+Enter (run selection).
- Preview available, but less polished than RStudio; may require pandoc installation.
- Limited notebook-style interface; running code chunks can feel clunky and may produce errors not seen in RStudio.
- No default Rmd templates; users can create snippets for code chunks (Ctrl+Alt+I).
- Native support with a robust visual editor (WYSIWYM) and source editor.
- Seamless knitting with Ctrl+Shift+K to render HTML, PDF, or Word.
- Built-in templates for Rmd files.
- Visual mode supports markdown formatting, citations, and code execution with inline output.
- Reliable chunk execution with Ctrl+Alt+C (run chunk) or Ctrl+Enter (run line/selection).
Qmd Editing - Supported via the Quarto extension, bundled with Positron (a VS Code-based IDE by Posit).
- Code completion, chunk execution, and side-by-side preview.
- Preview command via Command Palette or Ctrl+Shift+K.
- Less mature than RStudio’s Qmd support; may require additional setup (e.g., pandoc).
- No native visual editor; relies on source editing with markdown shortcuts.
- Native support with a visual editor (WYSIWYM) for Pandoc markdown, including tables, citations, and equations.
- Toggle between source and visual modes with Ctrl+Shift+F4.
- Inline code execution with Shift+Cmd+Enter or toolbar buttons.
- Robust rendering to multiple formats (HTML, PDF, Word) with Ctrl+Shift+K.
- Better integration with Quarto’s ecosystem (e.g., QuartoPub).
Visual Editing - No native WYSIWYM visual editor for Rmd/Qmd; relies on source editing.
- Preview available but not as tightly integrated as RStudio’s visual mode.
- Markdown extensions (e.g., markdown-preview-enhanced) can enhance preview but lack R-specific features.
- Advanced visual editor for Rmd and Qmd, supporting Pandoc markdown, citations, cross-references, and LaTeX.
- Real-time spell-checking and outline navigation.
- Preserves editing state when switching between source and visual modes.
Code Execution - Execute code with Ctrl+Enter (selection) or Ctrl+Shift+Enter (source).
- Output displayed in terminal or inline (with extensions).
- Less seamless for notebooks; may encounter errors with complex Rmd/Qmd files.
- Execute code chunks with Ctrl+Alt+C, lines with Ctrl+Enter.
- Inline output in visual mode or console output in source mode.
- More reliable for Rmd/Qmd chunk execution.
Rendering Output - Render Rmd/Qmd with Ctrl+Shift+K or via command palette.
- Supports HTML, PDF, etc., but requires pandoc and sometimes manual setup.
- Less streamlined than RStudio; errors may occur with complex documents.
- One-click rendering with Ctrl+Shift+K (Knit/Render button).
- Supports multiple formats (HTML, PDF, Word, presentations) with minimal setup.
- Automatic preview in Viewer pane.
Customization - Highly customizable with extensions and keybindings.
- Users can define snippets (e.g., for Rmd code chunks) in keybindings.json.
- Supports multiple languages (Python, SQL) and tools (Git, Docker).
- Limited editor customization (e.g., line height, themes).
- Tailored for R and markdown workflows, with less flexibility for other languages.
- Customizable keybindings via Tools > Modify Keyboard Shortcuts.
Integration with Tools - Strong Git integration, LiveShare for collaboration, and support for other languages.
- Requires extensions for R-specific tools (e.g., package management, help pages).
- Native integration with R packages, CRAN, and Posit tools (e.g., Shiny, QuartoPub).
- Built-in support for citations (Zotero, PubMed) and RStudio add-ins.
Performance - Lightweight and fast for general editing.
- Slower for Rmd/Qmd rendering and notebook-style workflows due to reliance on extensions.
- Optimized for R and markdown, with faster rendering and execution.
- Can feel heavier for non-R tasks.

Summary of Capabilities: - VS Code: A general-purpose, lightweight IDE that excels in customization, multi-language support, and integration with tools like Git. However, its Rmd and Qmd support is less polished, requiring extensions and manual setup. Notebook-style workflows (especially for Rmd) are clunky, and visual editing is absent. - RStudio: Tailored for R, Rmd, and Qmd workflows, with a superior visual editor, seamless rendering, and robust support for Quarto. It’s less flexible for non-R tasks and editor customization but provides a more cohesive experience for data scientists and statisticians.


3. Keyboard Shortcuts Comparison

Both IDEs support customizable keyboard shortcuts, but RStudio has more R-specific defaults, while VS Code relies on user configuration to mimic RStudio’s behavior.

Action VS Code Shortcut RStudio Shortcut
Run Current Line/Selection Ctrl+Enter (requires R extension) Ctrl+Enter (or Ctrl+R in some setups)
Run Entire Script/Source Ctrl+Shift+Enter Ctrl+Shift+S (source) or Ctrl+Shift+Enter (source with echo)
Insert R Code Chunk Ctrl+Alt+I (user-defined snippet) Ctrl+Alt+I (or Cmd+Option+I on Mac)
Render/Knit Document Ctrl+Shift+K (requires Quarto/R Markdown extension) Ctrl+Shift+K (or Cmd+Shift+K on Mac)
Run Current Rmd/Qmd Chunk Ctrl+Shift+Enter (less reliable) Ctrl+Alt+C (or Cmd+Option+C on Mac)
Toggle Source/Visual Mode Not applicable (no visual mode) Ctrl+Shift+F4 (or Cmd+Shift+F4 on Mac)
Bold Text (Visual Mode) Ctrl+B (with markdown extensions) Ctrl+B (or Cmd+B on Mac)
Italic Text (Visual Mode) Ctrl+I (with markdown extensions) Ctrl+I (or Cmd+I on Mac)
Insert Link Ctrl+K (with markdown extensions) Ctrl+K (or Cmd+K on Mac)
Insert Heading (Level 2) Alt+Ctrl+2 (with Quarto extension) Alt+Cmd+2 (Mac) or Alt+Ctrl+2 (Windows)
Insert Pipe Operator Ctrl+Shift+M (user-defined) Ctrl+Shift+M (or Cmd+Shift+M on Mac)
Insert Assignment Operator Alt+- (user-defined) Alt+-
Insert Anything (Visual Mode) Ctrl+/ (with Quarto extension) Cmd+/ or Ctrl+/

Notes on Shortcuts: - VS Code: Defaults are limited for R/Rmd/Qmd; users must configure shortcuts (e.g., via keybindings.json) to replicate RStudio’s behavior. The R and Quarto extensions allow mimicking RStudio shortcuts like Ctrl+Alt+I for code chunks. - RStudio: Offers a comprehensive set of R-specific shortcuts out of the box, especially for Rmd and Qmd editing. The visual editor supports both traditional shortcuts (e.g., Ctrl+B) and markdown shortcuts (e.g., **bold**). Shortcuts are customizable via the Tools menu. - Issues: In RStudio, some shortcuts (e.g., Ctrl+Enter for chunk execution) may fail sporadically in Rmd/Qmd files, especially in visual mode without YAML headers. This can often be resolved by modifying shortcuts or restarting RStudio.


4. Key Differences and Recommendations

  • VS Code:
    • Pros:
      • Lightweight and highly customizable.
      • Ideal for multi-language projects (e.g., R, Python, SQL) or developers using Git, Docker, or SSH.
      • Faster code completion and better documentation lookup (via hover).
    • Cons:
      • Requires extensions (R, Quarto, R Markdown) and pandoc for full functionality, which adds setup complexity.
      • Weak notebook support for Rmd/Qmd; chunk execution and rendering are less reliable.
      • No native visual editor, making it less intuitive for markdown-heavy workflows.
    • Best For: Users who need a flexible, multi-language IDE and are comfortable configuring extensions and keybindings.
  • RStudio:
    • Pros:
      • Tailored for R, Rmd, and Qmd, with a polished visual editor and seamless rendering.
      • Native support for Quarto, with better integration for publishing (e.g., QuartoPub).
      • Robust chunk execution and inline output in visual mode.
      • Comprehensive documentation and community support for R-specific tasks.
    • Cons:
      • Less flexible for non-R languages or advanced customization (e.g., editor appearance).
      • Heavier resource usage compared to VS Code.
    • Best For: Data scientists, statisticians, or users focused on R-based reproducible documents and Quarto workflows.

5. Conclusion

  • For R Scripts: Both IDEs are capable, but RStudio’s native R integration (e.g., environment pane, plot viewer) makes it more intuitive for R-focused workflows. VS Code is a strong alternative for users who prefer a lightweight editor or work across multiple languages.
  • For Rmd/Qmd Files: RStudio is the clear winner due to its visual editor, reliable chunk execution, and seamless rendering. VS Code’s Rmd/Qmd support is functional but less polished, with clunky notebook workflows and setup overhead.
  • Keyboard Shortcuts: RStudio provides a richer set of R-specific shortcuts by default, while VS Code requires user configuration to match. Both support customization, but RStudio’s shortcuts are more tailored to Rmd/Qmd tasks.

Recommendation: - Choose RStudio if your primary focus is R, Rmd, or Qmd for data analysis, reporting, or Quarto-based publishing. - Choose VS Code if you work in a multi-language environment, need advanced customization, or prefer a lightweight editor and are willing to invest time in setup.

If you have specific needs (e.g., particular R packages, output formats, or collaboration tools), let me know, and I can provide a more tailored comparison!