在R studio中禁用自动完成

时间:2016-04-14 15:50:09

标签: r rstudio

有谁知道如何在Rstudio中完全禁用自动完成功能?

我在工具>中看不到它的选项。全球选择;只有一种方法可以将其转换为手册(标签)'或者'触发时#39;

。在输入代码时我无法输入标签,这让我很疯狂。

2 个答案:

答案 0 :(得分:14)

在RStudio IDE 1.0+版本上,可以通过以下方法实现:转到工具>全局选项>代码>完成,然后取消选中“允许在控制台中自动完成”。

答案 1 :(得分:4)

我同意这很烦人。 RStudio完全忽略了用户对代码完成快捷方式的偏好,我在源代码中验证了这一点。我找到了以下解决方法,它在控制台和源视图中禁用了TAB自动完成,同时使用CTRL-SPACE(控制空间)键保持完整的自动完成。

此解决方法涉及自定义构建RStudio(https://github.com/rstudio/rstudio.git处的最新主分支)。

注意:在Mac OS X El Capitan / Sierra上,必须安装Java SDK,并且必须安装Apache Ant和OpenSSL(即通过Homebrew - brew install ant; brew install openssl),以及列出的依赖项,按照说明运行cmake之前。

对于解决方法,我在以下文件中注释掉了硬编码的TAB完成触发器,然后通过cmake构建了发布版本(按照说明)和sudo make install:

在目录中:     SRC / GWT / SRC /组织/ rstudio /工作室/客户端/工作台/视图

./控制台/壳/辅助/ CompletionUtils.java

Lines 27-28:
return /*( event.getKeyCode() == KeyCodes.KEY_TAB && modifier == KeyboardShortcut.NONE)
        || */ (event.getKeyCode() == KeyCodes.KEY_SPACE && modifier == KeyboardShortcut.CTRL);

=====

./控制台/壳/ shell.java

Lines 517-518:
/* if (event.getNativeKeyCode() == KeyCodes.KEY_TAB)
   event.preventDefault(); */

=====

./控制台/壳/辅助/ RCompletionManager.java

Line 1156:
//   if (firstLine.matches("^\\s*$"))

=====

./源/ Source.java

Lines 382-383:
/* commands.codeCompletion().setShortcut(
                               new KeyboardShortcut(KeyCodes.KEY_TAB)); */