1

背景:我将 RVM 更新到最新版本和 .rvmrc,以便我可以指导 rVM 使用项目特定的 gemset。但它现在要求 bash shell 是登录 shell。所以我通过 ubuntu 终端的 Edit |preference 做到了这一点。这工作得很好。

但是,gedit 的嵌入式终端仍然不是“将命令作为登录 shell 运行”。但是我可以通过在 gedit 启动后在嵌入式终端上输入“/bin/bash --login”来解决这个问题。

这是一个不错的解决方法,但我觉得必须有一种方法可以自动执行此操作。

我尝试将以下变体添加到 ~/.bashrc 文件的末尾,并且它可以正常工作,但是我必须按 ctrl-c 才能返回提示模式。另一个副作用,普通终端现在还需要我按 ctrl-C 才能返回提示模式。

/bin/bash -l -i

如何告诉 ~/.bashrc 文件执行该命令并返回提示模式,而无需每次都按 ctrl-C?或任何其他方式来实现这一目标。

提前致谢。

ps 我也在 askubuntu 上发布过

https://askubuntu.com/questions/226694/how-to-change-gedit-embedded-terminal-to-be-run-command-as-login-shell

4

2 回答 2

5

将此添加到您的 bashrc 脚本中:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

为我工作。

(您仍然需要:PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting

希望能帮助到你

于 2013-03-08T16:25:06.717 回答
1

终端插件是用 Python 编写的,因此您可以尝试自定义它。请注意,如果您直接编辑已安装的文件,您的更改将在软件包更新时被覆盖。

在“/usr/lib/gedit/plugins/terminal.py”文件的第 90 行附近,您会发现如下所示的一行: self._vte.fork_command_full(Vte.PtyFlags.DEFAULT, None, [Vte.get_user_shell()], None, GLib.SpawnFlags.SEARCH_PATH, None, None)

将参数添加到列表中的 shell: self._vte.fork_command_full(Vte.PtyFlags.DEFAULT, None, [Vte.get_user_shell(), "-l", "-i"], None, GLib.SpawnFlags.SEARCH_PATH, None, None)

于 2012-12-10T22:16:30.103 回答