履歴を含むzshオートコンプリートがログインごとに一貫して動作しないのはなぜですか?

履歴を含むzshオートコンプリートがログインごとに一貫して動作しないのはなぜですか?

私の.zshrcに次の行を追加した後:

autoload -U up-line-or-beginning-search
autoload -U down-line-or-beginning-search
zle -N up-line-or-beginning-search
zle -N down-line-or-beginning-search
bindkey "^[[A" up-line-or-beginning-search
bindkey "^[[B" down-line-or-beginning-search

(zshで)実行しましたが、上記の行はexec zsh適用されませんでした。それから私は次のことをしました(このコンテキストが必要かどうかはわかりませんが、関係があるかもしれません)。 exit再度ログインシェルに入れてログアウトexitし、ssh machine再度ログインするexec zshと上記の行が機能し始めました。

理由を知っている人はいますか?

編集する

私のタイトルの質問が間違っています。 .zshは上記の行でのみログインからログインまで一貫して動作しないことがわかりました。期待どおりに動作する場合もあり、そうでない場合もあります。パターンを見つけようとしましたが、見つかりませんでした。私の考えでは(確かではありませんが)ログイン重要です。コンピュータに接続すると、sshzshインスタンスに関係なく動作は同じままになるようです。

fromの出力はread (up) (down)常にfromの出力と同じhistory 0で、上矢印と下矢印がうまく機能しているようです。

有用な情報である場合もあれば、失敗した場合(しばらくは正常に動作しませんでした):

%bindkey | grep 'or-beginning'
"^[[A" up-line-or-beginning-search
"^[[B" down-line-or-beginning-search
%zmodload | grep zle
zsh/zle
%up-line-or-beginning-search
up-line-or-beginning-search:zle:19: widgets can only be called when ZLE is active
up-line-or-beginning-search:zle:21: widgets can only be called when ZLE is active
%read
^[[A^[[B^C% (up,down,ctrl-c)

ベストアンサー1

% echo echo echo >> ~/.zshrc
% exec zsh
echo
% 

したがって、私は今追加したexec zshものを実行します。おそらく実行されます。echo~/.zshrc

zsh -ixc exit >grepthis 2>&1

次に、grepthisファイルがその行を読み取ったのか、それbindkeyに関連する他の何かが発生していることを確認してください。

おすすめ記事