0

ワークステーションでソースコードを編集するために 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上記のフォントエラーメッセージはありますが、機能します。

上記のエイリアスを使用して、ファイル名を直接開く方法はありますか?

4

2 に答える 2

3

エイリアスの代わりに関数を使用します。引数を処理する必要がある場合は、より簡単に使用できます。.bashrcファイルに次の関数を配置します。

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

この例では、 を実行するときに、渡したすべての引数 ( ) を使用ne file.txtしてコマンドを実行するこの関数を呼び出します。nedit"$@"

エイリアスまたは関数をいつ使用する必要があるかについては、こちらの説明をご覧ください。とても良いです

于 2012-11-16T21:51:43.740 に答える
2

エイリアスの問題は&、間違った場所にいることです。エイリアスが展開されると、

nedit &>/dev/null & abc.c

&コマンド区切りなので、これは次と同等です

nedit &>/dev/null &     # launch nedit in the background without a file to edit
abc.c                   # execute abc.c

どうやら「abc.c」には実行権限がありません。

ビクターが言ったように、関数を使用してください。

于 2012-11-17T02:54:29.643 に答える