欢迎光临散文网 会员登陆 & 注册

RStudio设置选项(全)——2. Code

2023-01-14 15:36 作者:房子下面一头猪  | 我要投稿


本期内容简介

   R语言集成开发环境(IDE)RStudio软件设置选项(Global Options)中的第二节内容,即代码设置(Code)


RStudio版本: RStudio 2022.12.0 Build 353


目录:

2. Code
      2.1 Editing
            2.1.1 General
            2.1.2 Execution
            2.1.3 Snippet
      2.2 Display
            2.2.1 General
            2.2.2 Syntax
      2.3 Saving
            2.3.1 General
            2.3.2 Serialization
            2.3.3 Auto-save
      2.4 Completion
            2.4.1 R and C/C++
            2.4.2 Other Languages
            2.4.3 Completion Delay
      2.5 Diagnostics
            2.5.1 R Diagnostics
            2.5.2 Other Languages
            2.5.3 Show Diagnostics


2. Code
2.1 Editing
2.1.1 General

☑️ Insert spaces for Tab
为制表符插入空格

在活动文件中编辑时按Tab键插入指定数目空格而不是制表符
在控制台按下Tab键时始终以4个空格替代

请注意,文中所有选项的勾选状态参数设置即我们的推荐设置。

Tab width: 2
制表符宽度

一个制表符在活动文件中显示的宽度(字符数)
若勾选了Insert spaces for Tab,则在活动文件中按下Tab键时以Tab width指定的字符(空格)数替代
编辑器中自动缩进的级别会根据设置的制表符宽度自动适应。


☑️Auto-detect code indentation
自动检测代码缩进

启用后,将自动检测文档的缩进量。
当在R项目中时,默认缩进量为2字符,此选项无效。


☑️Insert matching parens/quotes
插入匹配的括号/引号

键入(、[、{、'、"符号时,自动补齐右半边配对符号,且光标自动置于中间。
 仅在英文字符输入状态下有效

☑️Use native pipe operator,|> (requires R 4.1+)
使用原生(官方)管道操作符

使用快捷键(Ctrl+Shift+M)插入管道操作符时,插入|>,而不是%>%
仅在R版本为4.1或以上时有效
不管是否勾选此选项,两种管道操作符都可正常使用(%>%需加载包)。

☑️Auto-indent code after paste
粘贴后自动缩进代码

对粘贴到编辑器控制台中的多行R代码块自动执行缩进
缩进量为2字符或自动检测的缩进量

☑️Vertically align arguments in auto-indent
垂直对齐自动缩进中的参数

函数参数位于不同的行时,根据嵌套关系垂直对齐各级参数。


⚪Soft-wrap R source files
软换行R源文件

将超过编辑器(source)窗口宽度的R源代码行折叠到下一行显示

请注意,这不会在换行点插入换行符,只是在编辑器中的多行上显示代码。

⚪Continue comment when inserting new line
插入新行时继续注释

若光标所在行为注释行,则插入新行时将同步上一行的注释格式
即新注释行前的 符号个数和缩进将与上一行保持一致

☑️Enable hyperlink highlighting in editor
在编辑器中启用超链接突出显示

突出显示活动文件代码或注释中的网页链接(下划线)
按住Ctrl键(非Shift键)并单击链接,可在默认浏览器中打开链接。

请注意,活动文件处于打开R项目的RStudio窗口时,即使勾选此选项脚本中的链接也不会突出显示。

Editor scroll speed sensitivity: 100
编辑器滚动速度灵敏度

编辑器中鼠标滚动时屏幕滚动的速度灵敏度,数值可为1~200,数值越大滚动速度越快。

Surround selection on text insertion: Quotes & Brackets
将指定符号插入选中文本两侧

在选中文本时键入引号或括号,将自动在选中文本两侧同时插入一对匹配符号。
Never: 不启用
Quotes: 键入 引号 (", ')自动插入
Quotes & Brackets: 键入引号(", ')或括号((, [, {)均自动插入


Keybindings: Default
组合键(风格)

选择快捷键的风格和自定义部分快捷键,同时光标也会有相应变化
Default: 默认风格
Emacs: 如Ctrl+X然后单独按下B,可在source窗口的标签页之间切换
Vim: 如在非插入模式时,按0跳转到光标所在行的最前面字符处(包括空白符)Sublime Text: 如Ctrl+P可以搜索跳转到指定活动文件或活动文件中的函数

Modify Keyboard Shortcuts...
修改快捷键

在组合键风格基础上,用户可自定义功能快捷键
快捷键修改建议:
Copy Document Path: Ctrl+Alt+C             # 复制活动文件全路径
Comment/Uncomment Selection: Ctrl+/  # 注释/取消注释选中行
Copy Lines Up: Ctrl+D                              # 向下拷贝一份选中内容
Insert Assignment Operator: Alt+,           # 插入赋值符号<-

2.1.2 Execution

⚪Focus console after executing from source
从源代码执行后光标移动到控制台

在活动文件脚本中通过run、source或Ctrl+Enter执行代码后,光标自动移动到控制台Console中。

请注意,光标移动到控制台后可在控制台编辑命令运行,但此时按下Ctrl+Enter键仍能继续执行脚本文件中的命令。

Ctrl+Enter executes: Multi-line R statement
Ctrl+Enter执行

在活动脚本文件中按下Ctrl+Enter组合键时,代码的执行内容

Current line: 只执行光标所在行代码,依次执行代码,不影响执行结果
Multi-line R statement: 以代码块为单位,朝下执行离光标最近的一个代码块,如整个循环、多行定义的数据框和+号连接的多行代码(如ggplot作图)
Multiple consecutive R lines: 执行从光标所在行到下一个空行的所有代码

请注意,无论何种执行方式,执行结束后光标都将移动到离执行代码最近的非空行,即会自动跳过脚本中的空行,但不会越过注释行。

2.1.3 Snippets

☑️Enable code snippets: Edit Snippets...
启用代码段

代码补全时显示可选的代码段,用户可以自定义代码段。

2.2 Display

2.2.1 General

☑️Highlight selected word
高亮显示所选词

为文档中当前所选词的所有拷贝添加背景突出显示效果,对在文件中只出现一次的词无效。 不仅限于单个单词,多个由其他符号连接的词也可,如one.two或one_two。

☑️Highlight selected line
高亮显示所选行

为选中的代码行添加背景突出显示效果


☑️Show line numbers
显示行号

在Source面板的打开文件的左侧显示行号

请注意,若取消勾选该选项,将无法通过在行号左侧空位点击以添加调试断点,同时也无法显示提示诊断类型的符号。

⚪Relative line numbers
相对行号

显示光标所在行的行号,光标所在行的上下行的行号以相对于光标所在行的行号显示,如在光标所在行的上(下)一行显示1,上(下)两行显示2,以此类推。

☑️Show margin
显示边距

在源代码编辑器右侧的指定字符宽度处显示边距参考线

Margin column: 80
边距列数

边距参考线位置,为英文输入法下的字符数。

⚪Show whitespace characters
显示空白字符

在活动文件中显示空白字符(空格符、制表符、换行符)

☑️indent guides: Rainbow lines
缩进参考

在活动文件中显示指示当前缩进列的元素

None: 不显示缩进参考元素
Gray lines: 以灰色线指示缩进
Rainbow lines: 以彩虹色线指示缩进
Rainbow fills: 以彩虹色填充指示缩进

☑️Blinking cursor
光标闪烁

在活动文件和控制台中显示光标闪烁效果

☑️Allow scroll past end of document
允许鼠标滚动超过文档结尾

在活动文件中,当屏幕滚动到文件最后一行时,允许继续向下滚动。

☑️Allow drag and drop of tex
允许拖放文本

允许将活动文件(控制台)中选中的文本内容进行拖(放)剪切到其他位置
 也可将选中文本拖放到RStudio外的其他应用程序中,此时为复制

Fold Style: Start and End
折叠样式

Start Only: 只在可折叠代码块的开始处显示折叠标记
Start and End: 同时在可折叠代码块的开始和结束处显示折叠标记


2.2.2 Syntax

☑️Highlight R function calls
高亮显示调用的R函数

在活动文件或控制台中高亮显示调用的R函数

☑️Enable preview of named and hexadecimal colors
启用命名颜色和十六进制颜色代码的预览

☑️Rainbow parentheses

彩虹括号

为源代码中的括号添加彩虹颜色,以便更好地区分嵌套的括号。


2.3 Saving

2.3.1 General

☑️Ensure that source files end with newline
确保源文件以换行符结尾

在保存源文件时,如果源文件不以换行符结尾,则在文件末尾添加换行符,即保存文件后始终保证文件的最后一行为空行。

请注意,活动文件处于打开R项目的RStudio窗口时,此选项会被Project Options中的相同设置项覆盖。

☑️Strip trailing horizontal whitespace when saving

保存文件时去除行尾处的空白符

保存文件时删除活动文件中每一行的尾部的空白符(空格符和制表符)
 
请注意,活动文件处于打开R项目的RStudio窗口时,此选项会被Project Options中的相同设置项覆盖。

☑️Restore last cursor position when opening file
打开文件时恢复上次光标位置

关闭RStudio并重新打开时,恢复上次关闭时各个打开文件中的光标位置(行和列)
 取消勾选时重新打开RStudio窗口后所有的文件中光标将置于文件第一个字符前

2.3.2 Serialization

Line ending conversion: Posix
换行符转换

None: 保存文件时将换行符统一为该文件中第一行的换行符风格
Platform Native: 跟随操作系统的换行符风格,Windows中为CRLF,Linux中为LF
Posix: 使用LF作为换行符,即 \n
Windows: 使用CRLF作为换行符,即 \r\n

Default text encoding:
UTF-8  Change…
默认文本编码

指定源文件的默认文本编码(新建/解码),当脚本文件的执行代码(非注释行)中存在中文字符时需要特别关注此选项,若文件编码方式与系统不匹配,此时不止会影响代码阅读,还将影响代码运行。脚本运行系统为Linux时建议选择UTF-8,在Windows中运行时建议执行代码(非注释行)中不要出现中文字符

请注意,与默认编码不匹配的源文件仍然可以使用“File->Reopen with Encoding”菜单命今正确打开。该操作只是更换解读文件的方式,不会实际改变文件的编码方式。

2.3.3 Auto-save

☑️Always save R scripts before sourcing
通过source执行脚本前总是先保存

在执行source命令前,总是先保存当前活动文件。

☑️Automatically save when editor loses focus
编辑器失去焦点时自动保存

当编辑活动文件后,若鼠标点击除活动文件的其他位置时,则自动保存当前活动文件。

When editor is idle: Backup unsaved changes
当文本编辑器空闲时

Saved and write changes: 自动保存活动文件
Backup unsaved changes: 自动备份活动文件,RStudio异常退出可以从备份文件中恢复
Do nothing: 不做任何操作

ldle period:1000ms
空闲时间

判断文本编辑器是否空闲的时间间隔,单位为毫秒。

2.4 Completion

2.4.1 R and C/C++

Show code completions: Automatically
显示代码补全

Automatically: 自动显示
Never: 从不显示
When triggered( $,:: ): 当触发时显示
Manually(tab): 按下Tab键时显示

请注意,When triggered选项未测试成功。若取消勾选Use tab for autocompletions,即使选择Manually也不能通过Tab键显示补全选项

☑️Allow automatic completions in console
允许在控制台中自动显示补全

请注意,若勾选了Use tab for autocompletions,即使不勾选此选项在控制台也能通过Tab键完成代码补全。”

☑️Insert parentheses after function completions
函数完成后插入括号

若输入函数名时使用了代码补全,自动在函数名后添加括号,并将光标移动到括号内。

☑️Show help tooltip after function completions
函数完成后显示提示信息

勾选此选项,则在代码完成后在一个小弹出窗口中显示函数帮助页面的摘要

☑️Show help tooltip on cursor idle
光标空闲时显示提示信息

当光标在函数名上停留一段时间后,显示函数帮助页面的摘要。

☑️Insert spaces around equals for argument completions
在参数 = 号周围插入空格

当使用代码补全时,自动在函数参数赋值的 = 号前后添加空格。

☑️Use tab for autocompletions
使用Tab键自动补全

按下Tab键可显示所有可能的代码补全选项,即使光标所在位置不是函数名或参数名

请注意,若勾选此选项,即使Show code completions设为Never,按下Tab键仍可显示可能的补全选项

☑️Use tab for multiline autocompletions
使用Tab键进行多行自动补全

当函数参数换行时,勾选此选项可在非函数名所在的行按下Tab键也显示自动补全选项,而不是插入制表符。

2.4.2 Other Languages

  • Show code completions: Automatically

    显示代码补全(其他语言)

Automatically: 自动显示
When triggered: 当触发时显示
Manually(ctrl+space): 按下Tab键时显示

Keyword and text-based completions are supported for several other languages including JavaScript, HTML, CSS, Python, and SOL.
关键字和基于文本的补全同样支持其他语言,包括JavaScript,HTML,CSS,Python和SOL。

2.4.3 Completion Delay

  • Show completions after characters entered: 3

    输入字符数后显示补全选项

用户的输入触发代码补全所需的最少字符数

Show completions after keyboard idle (ms): 250
键盘空闲后显示补全选项

只在Show code completions:为Automatically时有效 
编辑器在停止键入后应等待多长时间(毫秒)才显示代码补全选项

2.5 Diagnostics

2.5.1 R Diagnostics

☑️Show diagnostics for R
显示R的诊断

提供基本的诊断功能,在R代码存在问题时,在编辑器的相应行号处显示提示符,且在出现问题的代码底部显示波浪线。

☑️Enable diagnostics within R function calls
在R函数调用中启用诊断

控制是否在函数调用中执行诊断,例如dplyr::select(mtcars, mpg, cyl)
如果代码大量使用非标准求值,而RStudio无法为您生成正确的诊断,请切换此选项。

请注意,以上解释来源于RStudio User Guide - Code Diagnostics[1],实际上切换该选项函数诊断信息并未发生变化。

☑️Check arguments to R function calls
检查所调用的R函数的参数

尝试检测对函数的特定调用是否会成功
诊断引擎将报告是否检测到缺失参数、不匹配参数、部分匹配参数和过多参数

☑️Check usage of '<-' in function call
检查调用函数中的"<-"

R函数中参数赋值通常用=号而不用<-,勾选此选项将在函数中使用<-时显示警告。

请注意,使用<-进行参数赋值不会影响程序运行。

☑️Warn if variable used has no definition in scope
如果使用的变量在作用域中没有定义,则发出警告

如果使用的符号在当前作用域或父作用域中没有定义,则发出警告。
如果在符号名称中出现拼写错误,诊断引擎将提供建议。也就是说,如果作用域中也存在具有类似名称的符号。

☑️Warn if variable is defined but not used
如果变量已定义但未使用,则发出警告

该诊断有助于确定是否存在已创建但从未使用过的变量。当我们清理旧代码或诊断其他错误时(你认为应该使用某个特定变量,但实际上没有),会很有帮助。

☑️Provide R style diagnostics (e.g. whitespace)
提供R格式诊断(例如空格)

检查代码是否符合Hadley Wickham的样式指南[2],并在遇到时报告样式警告 诊断引擎将识别不适当地使用(或不使用)空格

请注意,逗号,后未紧跟一个空格的情况不能被正确诊断。

☑️Prompt to install missing R packages discovered in R source files
提示用户本机未安装但R脚本中将调用的R包

请注意,若脚本文件中存在未解决的Error诊断信息,则不会检查脚本中是否使用了未安装的包。若存在未显示诊断信息的不可执行代码(如在4.1以下版本的R中使用管道符|>),此时也无法提示安装。

2.5.2 Other Languages

☑️Show diagnostics for C/C++
在C或C++代码出现问题时,在编辑器的页边空白处显示警告消息。

☑️Show diagnostics for YAML
在YAML代码出现问题时,在编辑器的页边空白处显示警告消息。

请注意,本人在电脑上测试发现RStudio未能准确诊断YAML脚本中出现的问题,有待进一步验证。

☑️Show diagnostics for JavaScript, HTML, and CSS
在出现不正确的JavaScript、HTML和CSS代码时在编辑器的页边空白处显示警告消息。

2.5.3 Show Diagnostics

☑️Show diagnostics whenever source files are saved
保存源文件时显示诊断信息

勾选该选项时,保存文件时会立即刷新诊断信息。取消勾选后虽然不会立即刷新,但若勾选了Show diagnostics for R,也会在一定时间后显示诊断信息。

☑️Show diagnostics after keyboard is idle for a period of time
键盘空闲一段时间后显示诊断信息

当编辑完一行代码光标移动到别的行时,键盘空闲一段时间后,会显示诊断信息。

请注意,即使以上来两个选项均不勾选,诊断信息也会在编辑器失去焦点,重新回到文件后刷新诊断信息

Keyboard idle time (ms): 1000
键盘空闲时间(ms): 1000

判断键盘空闲的时间,单位为毫秒


[1] RStudio User Guide - Code Diagnostics:https://docs.posit.co/ide/user/ide/guide/code/diagnostics.html
[2] Hadley Wickham的样式指南: http://adv-r.had.co.nz/Style.html


后续内容预告:

3.Console
4.Appearance
5.Pane Layout
6.Packages
7.R Markdown
8.Python
9.Sweave
10.Spelling
11.Git/SVN
12.Publishing
13.Terminal
14.Accessibility

供稿:李伟宁、薛亚辉

编辑:孙福腾

校对:黄千千、毛瑞涵、李伟宁




团队其他公众平台:

微信公众号 | 房子下面一头猪

房子下面一头猪

知乎|房子下面一头猪 (https://www.zhihu.com/people/mang-guo-c-60-10) 

GitHub | CAU-TeamLiuJF  (https://github.com/CAU-TeamLiuJF) 

RStudio设置选项(全)——2. Code的评论 (共 条)

分享到微博请遵守国家法律