RStudio 中是否有自动格式化代码的可能性?
我找到了这个,但它没有与 RStudio 连接。
还希望它是可定制的格式。
更新:2018 年 6 月 22 日
谢谢@Lorenz@kirill@yuhi 的styler
包裹。我已经使用了一段时间。安装包后最简单的就是使用
滚动到Addin --> style active file
通过界面的自定义选项可以对我们喜欢的样式进行一些控制。
Rstudio 现在可以格式化代码以使其看起来整洁。选择感兴趣的行,然后导航到Code
>>Reformat code
或使用键盘快捷键Ctrl++ 。ShiftA
或者只是运行 style directory 命令来设置目录中所有文件的样式。
styler::style_dir()
update:这是重新构造代码的好方法,但它会中断,
向量的元素。对于少数人来说,这是可以的,但是将许多元素传递给向量,这就有点过分了:
x <- c(
"p.G12C",
"p.F121S",
"p.P124S",
"p.P124L",
"p.E13D",
"p.E203K",
"p.Q209P",
"p.Q209P",
"p.Q209L"
)
更新:R-Studio 版本 0.99.893
R-studio 添加了一项新功能Addins
。此插件的一部分,现在您可以将@yuhi formatR 添加为插件。与内置的code >> Refromat code
. 但是,Addin 的缺点是Reformat R Code
它会为 Rshiny 代码引发错误。
首先CTRL+ A,然后CTRL+ SHIFT+ A。
转到Code
菜单并选择
重新缩进线
在我的操作系统下,这有快捷键Ctrl+ I。
包样式器可以格式化 R 代码,您可以通过 RStudio 插件访问它,该插件允许格式化活动文件、突出显示的代码、包等。一个显着的特点是它的灵活性,因为根据样式指南的代码转换与指定样式指南是分开完成的。这允许根据任意样式指南进行样式设置。从 1.2.0 版开始,这也适用于插件。
我们实现了tidyverse 样式指南,同时在样式方面提供了相当大的灵活性。此外,管道、tidyeval 语法等也得到了正确处理。您可以阅读这篇博文中的介绍。
如果您不想遵循 tidyverse 样式指南,可以查看小插图“Customizing Styler”,它描述了如何实现任意样式指南。在这个小插曲中,我将展示如何实现由一条规则组成的样式指南:始终在{
. 希望有帮助。
披露:我是 styler 的维护者。
#use the library "formatR"
install.packages("formatR")
library(formatR)
# tidy_eval("file path")
tidy_eval("C:/Users/PC_name/Desktop/myfile.R")
添加到已经给出的好答案:您可以将该styler
包与shrtcts包结合使用,以启用RStudio 仍不正式支持的Format on Save。
使用shrtcts::edit_shortcuts()
RStudio 控制台中的命令打开定义自定义快捷方式的文件。
将以下代码粘贴到该文件中(在该@shortcut
行中设置您的首选键绑定)。
#' Format on Save
#'
#' @description
#' Format Document with styler Package and Save Document.
#' @interactive
#' @shortcut Cmd+S
function() {
# format only .R and .Rmd files, but save all file types
file_type <- tools::file_ext(rstudioapi::getActiveDocumentContext()$path)
if (file_type %in% c("R", "Rmd")) {
styler:::style_active_file() |>
capture.output() |>
invisible()
}
rstudioapi::documentSave() |>
capture.output() |>
invisible()
}
此解决方案使用本机管道|>
,因此需要R 4.1
. 当然,您可以只在每一行中定义单独的变量,或者 magrittr
如果您使用早期版本的R
.
使用shrtcts::add_rstudio_shortcuts(set_keyboard_shortcuts = TRUE)
RStudio 控制台中的命令添加新的快捷方式及其分配的键绑定。然后重新启动 RStudio。
使用此配置,按下Cmd+S
将活动.R
或.Rmd
文档与styler
包一起格式化,然后保存格式化的版本。.md
所有其他类型的文件都无需格式化即可保存,但您可以轻松地使用可以格式化 eg或.py
files的包来扩展上面的代码。
存在这种方法代码没有达到预期效果的情况,例如它不适用于新Untitled
文件或当前R
会话繁忙时。