私の.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は上記の行でのみログインからログインまで一貫して動作しないことがわかりました。期待どおりに動作する場合もあり、そうでない場合もあります。パターンを見つけようとしましたが、見つかりませんでした。私の考えでは(確かではありませんが)ログイン重要です。コンピュータに接続すると、ssh
zshインスタンスに関係なく動作は同じままになるようです。
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
に関連する他の何かが発生していることを確認してください。