エイリアスを追加できます!`bashrcで? [コピー]

エイリアスを追加できます!`bashrcで? [コピー]

私はコマンドラインでemacsをエディタ(エイリアス)として使用しており、最近emacsで開いたファイルを開くことができるalias em='emacs -nw'エイリアスを作成したいと思います。!em

、、を試してみましたが、alias e='!em'これまで動作している項目が見つかりませんでしたalias e='${!}em'alias e='${!em}'

エイリアスに関する関連記事を見つけました!!

!! とともにコマンドのエイリアスを使用して最後のコマンドを呼び出します。

答え1

エイリアス拡張後は履歴拡張は実行されないと思われるので、次のようにhistory -p明示的に実行する必要があります。

alias e='eval "$(history -p !em)"'

コマンドの置き換え後にエイリアスは拡張されないため、この場合は機能しません。しかし、関数は機能するので、次の2つが必要です。

em() { emacs -nw "$@"; }
e() { eval "$(history -p !em)"; }

後者はエイリアスにすることができます。

答え2

説明したように、emのエイリアスを設定した場合は、!emの追加エイリアスを作成しようとしないでください。 !シェル履歴メカニズムを呼び出すので、 "!em"コマンドは最後に使用された別名を繰り返します(ただし、これはemacsが実際に編集した最後のファイルではないかもしれません)。

関連情報