我正在使用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。
有没有办法让我使用上面的别名并给它一个直接打开的文件名?

最佳答案

使用函数而不是别名。当我们必须处理参数时,它更易于使用。在.bashrc文件中放置以下函数:

function ne() {
    command nedit "$@" &>/dev/null &
}

在这个例子中,当您运行ne file.txt时,您调用这个函数,它用您传递的所有参数(nedit)执行命令"$@"
看看这个explanation关于什么时候应该使用别名或函数。非常好

关于linux - nedit命令别名导致功能损坏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13424463/

10-11 15:15