コマンドラインからファイルをgedit
すると、常にターミナルがロックされ、切り離されたプロセスに明示的にコマンドを送信するのにうんざりします。
gedit
をgedit $* & disown
のようなものとしてエイリアスしようとしましたが、それが正しい構文ではないか、実行可能なバイナリコマンドをエイリアスでオーバーロードすることが許可されていません(.bash_aliases関数でそれを使用してみました。
alias gedit=editorz
function editorz()
{
gedit $* & disown
}
)、しかしそれはかかりません。
では、コマンドgedit test.txt
で元のターミナルウィンドウをロックしないようにするにはどうすればよいですか?
それはうまくいくはずです:あなたの.bash_aliases
が読まれてもよろしいですか? (これは標準ファイルではありませんが、~/.bashrc
によって提供されている可能性があります。.bashrc
と.bash_profile
について混乱している場合は、 。bashrcと.bash_profileの違い)を参照してください。 。)
関数にバグがあります。
editorz () {
gedit "$@" & disown
}
お使いのバージョンは、スペースまたはシェルワイルドカードを含むファイル名では機能しません。 function
キーワードはオプションです。
関数gedit
を呼び出すことができます(そしてエイリアスを完全に省くことができます)が、関数内の呼び出しは関数ではなくコマンドに対するものであることをシェルに伝える必要があります。
gedit () {
command gedit "$@" & disown
}
誤ってフォアグラウンドでgeditを開始した場合(つまり、ターミナルをロックした場合)、を押すとバックグラウンドに置くことができます。 Ctrl+Z ターミナルで、コマンドbg
を入力します。
(ターミナルではなく)Utilitiesフォルダからgedit
を開くと、問題が解決します。
エイリアスの前にfunction editorz()
が定義されていることを確認してください。
私はあなたのアプローチを試しましたが、問題なく機能しました。