如何列出键入packageName<tab>
时曾经发生的所有结果,即通过自动完成提供的完整列表?在R 2.15.0中,我得到Matrix::<tab>
的以下内容:
> library(Matrix)
> Matrix::
Matrix::.__C__abIndex Matrix::.__C__atomicVector Matrix::.__C__BunchKaufman Matrix::.__C__CHMfactor Matrix::.__C__CHMsimpl
Matrix::.__C__CHMsuper Matrix::.__C__Cholesky Matrix::.__C__CholeskyFactorization Matrix::.__C__compMatrix Matrix::.__C__corMatrix
Matrix::.__C__CsparseMatrix Matrix::.__C__dCHMsimpl Matrix::.__C__dCHMsuper Matrix::.__C__ddenseMatrix Matrix::.__C__ddiMatrix
Matrix::.__C__denseLU Matrix::.__C__denseMatrix Matrix::.__C__dgCMatrix Matrix::.__C__dgeMatrix Matrix::.__C__dgRMatrix
Matrix::.__C__dgTMatrix Matrix::.__C__diagonalMatrix Matrix::.__C__dMatrix Matrix::.__C__dpoMatrix Matrix::.__C__dppMatrix
Matrix::.__C__dsCMatrix Matrix::.__C__dsparseMatrix Matrix::.__C__dsparseVector Matrix::.__C__dspMatrix Matrix::.__C__dsRMatrix
Matrix::.__C__dsTMatrix Matrix::.__C__dsyMatrix Matrix::.__C__dtCMatrix Matrix::.__C__dtpMatrix Matrix::.__C__dtrMatrix
Matrix::.__C__dtRMatrix Matrix::.__C__dtTMatrix Matrix::.__C__generalMatrix Matrix::.__C__iMatrix Matrix::.__C__index
Matrix::.__C__isparseVector Matrix::.__C__ldenseMatrix Matrix::.__C__ldiMatrix Matrix::.__C__lgCMatrix Matrix::.__C__lgeMatrix
Matrix::.__C__lgRMatrix Matrix::.__C__lgTMatrix Matrix::.__C__lMatrix Matrix::.__C__lsCMatrix Matrix::.__C__lsparseMatrix
[...truncated]
[...truncated]
消息令人恼火,我想制作完整列表。我需要调用哪个选项/标志/旋钮/配置/咒语以避免截断?我有这样的印象,我曾经看到完整列表,但现在不再 - 可能是在不同的操作系统(例如Linux)上。
我知道ls("package:Matrix")
是一种有用的方法,但它与设置选项不同,列表也不同。
答案 0 :(得分:9)
不幸的是,在Windows上,看起来这种行为很难连接到用于构建控制台的C
代码中。所以答案似乎是“不,你不能禁用它”(至少没有修改源,然后从头重新编译R)。
以下是$RHOME/src/gnuwin32/console.c
的相关行:
909 static void performCompletion(control c)
910 {
911 ConsoleData p = getdata(c);
912 int i, alen, alen2, max_show = 10, cursor_position = p->c - prompt_wid;
...
...
1001 if (alen > max_show)
1002 consolewrites(c, "\n[...truncated]\n");
您是正确的,在其他一些平台上,所有结果都打印出来。 (例如,我经常使用Emacs,它会在单独的缓冲区中弹出选项卡完成的所有结果)。
作为一个有趣的旁注,rcompgen
,实际执行制表符完成的后端(与将结果打印到控制台相反)始终查找所有完成。只是Windows没有打印出来供我们查看。
您可以通过输入以下内容验证即使在Windows上也会发生这种情况:
library(Matrix)
Matrix::
## Then type <TAB> <TAB>
## Then type <RET>
rc.status() ## Careful not to use tab-completion to complete rc.status !
matches <- rc.status()$comps
length(matches) # -> 288
matches # -> lots of symbols starting with 'Matrix::'
有关后端以及控制其行为的功能和选项的更多详细信息,请参阅?rcompgen
。