knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "README-" ) library(rsam) library(dplyr) x <- fetch_addins(fields = c("Package","Name","Binding","Interactive","Key","Shortcut")) x[is.na(x)] <- ''
{rsam}
provides a command line and user interface to manage RStudio addins.
Since {rsam}
manages the rstudio addins it must write to disk.
remotes::install_github('yonicd/rsam')
{rsam} needs explicit user permissions to write to disk. There are two questions that need to be answered for the package to run as intended.
Do you agree to let {rsam} manipulate the addins jsons used to manage RStudio addin keyboard shortcuts?
Do you agree to let {rsam} duplicate the dcf files of the installed addins in your .libPaths()
and manipulate them to manage RStudio Addins dropdown list?
Answering the affirmative to both will allow {rsam} to manipulate non R related files. Answering only one will allow for a narrow application of {rsam}.
There are two ways to set answers to the questions:
On load or attach of the library a prompt is invoked asking the two questions. This is done to set the permissions once a session.
Use rsam::create_yml()
to write _rsam.yml to the home directory (~)
. In this file there are three fields. When loading {rsam} looks for this file and if it exists then uses the field settings instead of asking questions via prompts.
| Field| Description| Setting| |--:|--:|--:| | write_json| Permission to write ~/.R/rstudio/keybindings/addins.json| yes| | write_dcf | Permission to duplicate and edit rstudio/addins.dcf of installed packages with addins| yes| | verbose | Permission to run onload/onattach script run with messages to console| yes|
library(rsam) rsam()
fetch_addins()
knitr::kable(x)
rsam
has a validation for keyboard keys through the class key
KEYS$`left command/window key` KEYS$shift KEYS$i key <- KEYS$`left command/window key` + KEYS$shift + KEYS$i key
set_shortcut(fn = 'blogdown::serve_site',shortcut = key) #if the binding already has a shortcut mapped to it `overide` must be TRUE set_shortcut(fn = 'blogdown::serve_site',shortcut = key, overide = TRUE)
rm_shortcut(fn = 'blogdown::serve_site')
Every time a binding is passed to the toggle_addin
function it will switch states.
toggle_addin(key = c("blogdown::serve_site","blogdown::new_post_addin","blogdown::update_meta_addin"))
rsam
gives you 3 empty addins to pass into them whatever you want and run them as your personal addins. You can also set keyboard shortcuts for each one with set_shortcut
.
Pass through an expression wrapped the global objects rsam_fn_1()
, rsam_fn_2()
, and rsam_fn_3()
into the Rstudio Addin list.
rsam_fn_1 <- function(){ library(ggplot2) library(dplyr) iris%>%ggplot(aes(x=Sepal.Length,y=Sepal.Width)) + geom_point() } # Change shortcuts to whatever you want keys <- KEYS$`left command/window key` + KEYS$shift + KEYS$l rsam::set_shortcut(fn = 'rsam::lla1',shortcut = keys + KEYS$`1`) rsam::set_shortcut(fn = 'rsam::lla2',shortcut = keys + KEYS$`2`) rsam::set_shortcut(fn = 'rsam::lla3',shortcut = keys + KEYS$`3`)
You've found a bug, or have an enhancment idea? Feel free to open an issue : https://github.com/yonicd/rsam/issues.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.