コマンドラインからgeditを呼び出すときに、`gedit Something&disown`の動作をデフォルトの動作に変更するにはどうすればよいですか?

コマンドラインからgeditを呼び出すときに、`gedit Something&disown`の動作をデフォルトの動作に変更するにはどうすればよいですか?

コマンドラインからファイルを送信すると、gedit端末は常にロックされ、分離されたプロセスに明示的にコマンドを発行するのに疲れました。

geditエイリアスをそのように設定しようとしましたが、正しい構文ではgedit $* & disownないか、エイリアスで実行可能なバイナリコマンドをオーバーロードすることはできません(.bash_aliases関数で試してみてください)。

alias gedit=editorz

function editorz()
{
  gedit $* & disown
}

)、必須ではありません。

gedit test.txtでは、このコマンドが元の端末ウィンドウをロックしないようにするにはどうすればよいですか?

答え1

.bash_aliasesこれはうまくいきます。コンテンツを読みましたか? (これは標準文書ではありませんが、あなたの文書かもしれませ~/.bashrc.bashrc.bash_profile.bashrcと.bash_profileの違い.)

関数にエラーがあります。エラーが発生するはずです。

editorz () {
  gedit "$@" & disown
}

あなたのバージョンは、スペースやシェルワイルドカードを含むファイル名では機能しません。キーワードはfunctionオプションです。

関数を呼び出すことはできますが、gedit別名を完全に省略できますが、関数の内部呼び出しは、関数ではなくコマンドへの呼び出しであることをシェルに知らせる必要があります。

gedit () {
  command gedit "$@" & disown
}

Ctrl誤ってフォアグラウンドでgeditを起動した場合(たとえば、端末をロックする)、端末で+を押してZコマンドを入力してバックグラウンドにすることができますbg

答え2

function editorz()エイリアスの前に定義されていることを確認してください。

私はあなたの方法を試しましたが、問題はありませんでした。

答え3

geditターミナルの代わりにユーティリティフォルダで開くと問題が解決しました。

答え4

次のエイリアスを追加するだけです。

alias gedit='gedit -b'

この-bオプションはバックグラウンドで実行されることを意味します。

関連情報