Interacting with R terminals - REditorSupport/vscode-R GitHub Wiki
In VS Code window, press F1 (or Ctrl + Shift + P) and choose "R: Create R terminal" command, then the VS Code terminal will be revealed and an R terminal will be launched.
By default, the official R
terminal is launched.

We recommend radian as a better alternative.

If the R session watcher is enabled, then it will attach to the R session whenever a new R terminal is created. The status of the session watcher is shown in the status bar like below:
By default, if there is no active R terminal, then a new R terminal will be
created before sending code to it. To always send code to the active terminal
without creating a new one, turn on r.alwaysUseActiveTerminal
in VS Code
settings.
The behavior of sending code to the terminal is following:
- If a range of code is selected, then the selected code will be sent to the terminal.
- If no code is selected, then an executable range of code will be sent to the terminal and the cursor will move to the next line.
Each time "R: Create R terminal" is executed, a new R terminal is created. The user could switch between these R terminals, and customize the icon color and the label of each terminal.

To make the session watcher attach the R session of the current R terminal, click the status bar item "R: (not attached)" or "R: #PID" if a session is previously attached.
Self-managed R terminals could be useful if one needs one or more R sessions to
be preserved so that closing the VS Code window does not terminate the R
sessions. On Linux and macOS, both
screen
and
tmux
could be used to preserve any number
of R sessions or any other terminal programs in a customizable layout.

To make self-managed R sessions behave like those created by "R: Create R
terminal", the following code should be added to ~/.Rprofile
:
if (interactive() && Sys.getenv("RSTUDIO") == "") {
Sys.setenv(TERM_PROGRAM = "vscode")
source(file.path(Sys.getenv(
if (.Platform$OS.type == "windows") "USERPROFILE" else "HOME"
), ".vscode-R", "init.R"))
}
Then starting an R terminal anywhere will request the session watcher to attach the R session.
On some systems, users may notice that the full width of the R console is not being used. In the example below, we see that both the LETTERS
vector and the columns of our dummy data frame are being hard wrapped at 80 characters, resulting in unnecessary overflow of rows instead of utilizing the available horizontal space.

The culprit in such cases is most likely a hard-coded width
option in your system-wide .Rprofile
. You can check by running
getOption("width")
Changing this width/wrapping constraint is a simple matter of overriding the default width
option. You can provide a hard-coded value like, say, 120
or 160
. Or, you can try invoking the "COLUMNS"
system environment variable (caveat: this may not be available on your system). Either way, you will probably want to set the sister setWidthOnResize
option to TRUE
at the same time, so that the prompt width dynamically adjusts along with your VS Code terminal (e.g., if you resize the window).
options(width=120) # set hard-coded value
# options(width=Sys.getenv("COLUMNS")) # set on available columns (may not work on every system)
options(setWidthOnResize=TRUE) # automatically reset the width if the terminal window is changed

Here we have (temporarily) set the width options directly in our live R session. But you may wish to add them to your .Rprofile
for a persistent change across sessions.