1

我正在做这个 Ruby on Rails 教程,每次我输入

:~/rails_projects/first_app$ geany .gitignore    

我明白了

(geany:12043): LIBDBUSMENU-GTK-CRITICAL **: watch_submenu: assertioN                      
`GTK_IS_MENU_SHELL(menu)' failed
@ubuntu:~/rails_projects/first_app$ geany .gitignore

(geany:12369): LIBDBUSMENU-GTK-CRITICAL **: watch_submenu: assertion     
`GTK_IS_MENU_SHELL(menu)' failed 

文本编辑器仍然打开,但是除非我关闭文本编辑器,否则终端不允许我输入任何内容,这与他打开它的教程不同,并且终端仍然可以工作。如何使用文本编辑器获得正常运行的终端?

4

2 回答 2

0

我也有同样的问题。
关于如何纠正它的任何想法?

我发现继续使用命令行并且仍然打开 geany 的方式是:

 $ geany file &
 $ <ctrl+c>


它很有用,但并不完美。一个解决方案会很好

于 2013-02-20T12:58:58.293 回答
-1

将以下 bash 函数定义剪切并粘贴到您的 bash 配置文件 ~/.bash_profile 以从登录 bash 终端使用它(或粘贴到 ~/.bashrc 以从非登录终端使用它)。此功能仅在进行此更改后启动的终端中可用。

geany() { 
    $(which geany) --no-msgwin --no-session "$@" &>/dev/null & disown
}

现在键入geany后跟零个或多个文件名将产生所需的效果。

解释:

$(which geany)通过搜索您的 PATH 找到 geany 的路径,并用该路径代替文本$(which geany)

选项--no-msgwin--no-session是可选的,但分别启动 geany 时没有底部的消息窗口,并且不记得打开上次关闭 geany 时打开的文件。

"$@"是 bash 将命令行的其余部分替换到此命令中的方式(即,在您键入geany以使用此功能后键入的所有文件名)。

&>/dev/null将 geany 的标准输出和标准错误输出重定向到 /dev/null,这会阻止来自 geany 的任何消息显示在控制台中。

& disown将 geany 作为一个单独的进程运行,该进程不是启动 geany 的终端的子进程。所以它立即不是与终端关联的工作,退出geany时终端不会出现终止消息。

于 2013-04-19T17:38:26.070 回答