ではtcsh
、 コマンド\eP
と\eN
コマンドは、最初の単語だけでなく、現在の行の空白で正規化されたプレフィックスを考慮します。
例えば私の履歴に
git pull upstream feature-dancing-pigs
git clone
そして私はタイプする
% git pull
そして、打つと\eP
、tcsh
私は
% git pull upstream feature-dancing-pigs
\eP
を入力するとzsh
、コマンドに一致する履歴項目が表示されます。
% git clone
zsh
動作をエミュレートするように設定したいのですがtcsh
、可能ですか?
私はzsh
デフォルトのemacsキー設定と明示的な
bindkey "\eP" history-search-backward
それが判明したとして
bindkey "\eP" history-beginning-search-backward
^[
は、当初 の代わりに使用していた期待どおりの動作をします\e
。
答え1
zshcontrib
と呼ばれる関数が文書化されておりup-line-or-beginning-search
、これを実行すると表示できます。
man zshcontrib | less '+/^\s*up-line-or-beginning-search'
これらのウィジェットは組み込み関数のup-line-or-searchとdown-line-or-searchに似ています。複数行バッファの場合はバッファ内を上下に移動し、そうでない場合は現在の行の先頭に一致する履歴行を検索します。ただし、この場合は、現在の行から現在のカーソル位置までを一致させます歴史の始まりから遡及、そして前進へと進むようなやり方で、行の最初の単語ではなく。
ZLE FUNCTIONS
セクションの一番上にある説明を見るとman zshcontrib
ZLE関数
ウィジェット
これらの関数はすべて、対話型シェルのキーストロークにバインドできるユーザー定義のZLEウィジェット(zshzle(1)を参照)を実装しています。これらを使用するには、.zshrcに次の形式の行を含める必要があります。
autoload function
zle -N function
私は個人的に上記の指示に従ってきましたが、今ではそうする必要はないのではないかと思います...~/.zshrc
# register the function with the autoloader
autoload -U up-line-or-beginning-search
# define new zle widget
zle -N up-line-or-beginning-search
# bind UP key
[[ -n "${key[Up]}" ]] && bindkey "${key[Up]}" up-line-or-beginning-search