我正在使用nedit来编辑工作站中的源代码。然而,它始于以下错误:
Cannot convert string "-*-helvetica-medium-r-normal-*-*-120-*-*-*-iso8859-1" to type FontStruct
Cannot convert string "-*-helvetica-bold-r-normal-*-*-120-*-*-*-iso8859-1" to type FontStruct
Cannot convert string "-*-helvetica-medium-o-normal-*-*-120-*-*-*-iso8859-1" to type FontStruct
Cannot convert string "-*-courier-medium-r-normal-*-*-120-*-*-*-iso8859-1" to type FontStruct
Cannot convert string "-*-courier-bold-r-normal-*-*-120-*-*-*-iso8859-1" to type FontStruct
Cannot convert string "-*-courier-medium-o-normal-*-*-120-*-*-*-iso8859-1" to type FontStruct
我不知道如何修复这些错误,我使用了别名来开始编辑: ne ='nedit&> / dev / null&'
禁止将警告消息吐出到stdout和stderr,让nedit在后台运行,这样我就可以在当前终端窗口中输入下一个命令。
然而,如果我使用此别名直接打开文件,它会给我一个错误信息:
[qxu@merlin:/home/qxu/work/src]# ne abc.c
[4] 24969304
-bash: ./abc.c: The file access permissions do not allow the specified action.
然而,nedit abc.c
可行,但上面的字体错误是msgs。
我有没有办法使用上面的别名并给它一个文件名直接打开?
答案 0 :(得分:3)
使用函数而不是别名。当我们必须处理参数时,它使用起来更简单。将以下函数放在.bashrc
文件中:
function ne() {
command nedit "$@" &>/dev/null &
}
在此示例中,当您运行ne file.txt
时,您调用此函数执行命令nedit
,其中包含您传递的所有参数("$@"
)。
当您应该使用别名或函数时,请查看此explanation。这是非常好的
答案 1 :(得分:2)
您的别名问题在于&
位置错误。当别名扩展时,你得到
nedit &>/dev/null & abc.c
&
是command separator,因此相当于
nedit &>/dev/null & # launch nedit in the background without a file to edit
abc.c # execute abc.c
显然“abc.c”没有执行权限。
正如Victor所说,使用一个函数。