使用交互式system()调用bash自动完成

时间:2014-04-23 15:53:43

标签: r bash

我使用共享的rhel6服务器在命令行中使用R.我没有root权限。服务器安装了R 2.15。我从源代码中将R 3.1安装在我具有写访问权限的目录中,因此我可以使用与R 2.15不兼容的软件包。

当我使用服务器的R安装(2.15)时,当我以交互方式使用system()调用时,它将执行自动完成。例如,如果我在当前工作目录中有一个名为somescript.sh的bash脚本,如果我在输入以下内容后按Tab键:

> system("somescr

它将自动完成此操作:

> system("somescript.sh

同样,如果我想要“猫”。 bash脚本,输入后按Tab键;

> system("cat somescr

它将自动完成此操作:

> system("cat somescript.sh

现在,在我安装的R(3.1)中,输入后按下标签:

> system("somescr

将按预期自动完成此操作:

> system("somescript.sh

但是,它不会像上面第二个例子那样在空格后自动完成。所以当我输入后按下标签:

> system("cat somescr

它不会自动完成:

> system("cat somescr

知道控制此行为的内容以及如何启用完全自动完成功能吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您可以在编程环境中使用Emacs - ESS,那么满足您的需求。如果工作目录中有2个文件,即soma.shsomescript.sh,则以

开头
system("cat som

然后输入ALT + TAB; emacs建议

Possible completions are:
soma.sh
somescript.sh

最后输入e后跟ALT + TAB,使emacs完成

system("cat somescript.sh