zshに組み込まれている「r」が共有履歴の場合は、ローカル履歴のみを考慮に入れます。

zshに組み込まれている「r」が共有履歴の場合は、ローカル履歴のみを考慮に入れます。

rシェルに組み込まれているユーティリティをzshオプションなしで使用すると、コマンド履歴にある最新のコマンドを再実行します。

これの問題は、履歴を共有する複数のシェルセッションがある場合(SHARE_HISTORYシェルオプションが設定されている場合)、誤って「非ローカル」シェルセッションでコマンドを実行する間違いを犯しやすいことです。これは、使用をr潜在的に危険にする。

質問:r現在のシェルセッションのローカル履歴イベントのみを考慮するように動作を変更するか、rlローカルイベントのみを考慮する別々のエイリアスまたは関数を作成するにはどうすればよいですか?

(最も最近のコマンドを覚えて編集せずに実行してください)rと同じでなければならないので、おそらく同じ操作を使用または実行すると思ったが、何らかの理由で最新のコマンドでのみ機能するようです。fc -e -r -Lfc -e - -Lグローバル履歴イベントは現在のシェルセッションで発生します。そうでない場合、シェルはエラーを報告しますfc: no matching events found

zshzsh-5.8-0-g77d203fzsh-5.8p0OpenBSD 6.8パッケージバージョン5.8()がここで使用されます。

接線的に関連する質問:

ベストアンサー1

r -Lメーリングリストに聞いてみると予想通りに動作しないという事実がバグとされたzsh-users

このエラーは修正されました。2021年2月18日、ShellのGit開発ブランチ:

commit 6bef719302d6db33c63fb6f2636986dff1941ac2
Author: Peter Stephenson <retracted>
Date:   Thu Feb 18 21:37:08 2021 +0000

    users/26509: fix for r -L

    fc with the -L option should ignore remote entires, rather than
    reading them and treating them as an error.

おすすめ記事