簡単にコマンド履歴をナビゲート
Puedes leer la versión en español .
あなたがあまりにも多くの時間を端末でコマンドを書くときに、それはあなたが一日の間に使用されているすべてのプログラムを覚えていないことができない時間です.我々のために幸運に、我々はそうしなければなりません、「シェル」はあなたのためにそれをすることができます.そして今日、私たちは端末でのユーザーエクスペリエンスを向上させるためにこの機能を利用できる方法を学びます.
コマンドと矢印キー
私は、ここの誰でも正しく矢印キーを知っていると確信します?私たちはそれらを上下に歴史をナビゲートすることができます.あなたの何人かは知っているかもしれません
ctrl+r
, これは、古いコマンドの対話的な「逆の検索」を可能にします.しかし、私があなたに言ったならば、我々は2つの世界の最高を得ることができますか?我々は、コマンドの最初の数文字を書くことができますし、上矢印キーを押すと、これらの文字で始まるコマンドをナビゲートを開始するキーを押します.
私たちがこれらのコマンドを我々の歴史に保存したふりをしましょう.
node ./test.js
vi /tmp/text.txt
nvim /tmp/text.txt
vi /tmp/test.js
echo "a string with vi in it"
vi /tmp/other-text.txt
我々は、我々が使用して修正ファイルを探したいvi
. それで、我々はタイピングで始めますvi
そして、私たちがUPキーを押すとすぐに、あなたのシェルはこれらのコマンドだけを示します.vi /tmp/text.txt
vi /tmp/test.js
vi /tmp/other-text.txt
我々は、我々が書くことを望まないので、20回、キーを押すのを止めることができますnpm start
. 種類np
+ 矢と我々は、そこにいます.良い音、どのように我々はこの機能を有効にすることができますか?シェルによって異なります.
# Up arrow
bind '"\e[A": history-search-backward'
# Down arrow
bind '"\e[B": history-search-forward'
autoload -U up-line-or-beginning-search
autoload -U down-line-or-beginning-search
# Up arrow
bindkey "${terminfo[kcuu1]}" up-line-or-beginning-search
# Down arrow
bindkey "${terminfo[kcud1]}" down-line-or-beginning-search
Note: if you use
oh-my-zsh
it is already enabled for you.
何らかの理由で
terminfo
が定義されていない場合、これを端末で試してみましょうctrl+v
その後、矢印、奇妙なものは、画面上に表示されます.私の場合、^[OA
^[OB
terminfo
. これは私のマシンで動く.bindkey '^[OA' up-line-or-beginning-search
bindkey '^[OB' down-line-or-beginning-search
インタラクティブ検索
場合は、罰金の前の“トリック”が好きではなかった.たぶんあなたは良い古い
ctrl+r
. ミー?私がインタラクティブな検索をするならば、私はむしろ使用しますfzf . With fzf
我々は得るthese scripts , key-bindings.*sh
特に古いものより良いユーザーエクスペリエンスによる履歴検索を可能にするctrl+r
. 残念ながら、これを有効にするにはあまりにも多くの方法があります(いくつかのOSに依存します)ので、あなたがそれをしたい場合は、より良いあなたのケースに賛成しているメソッドを探してください.マジックスペース
両方
bash
and zsh
「歴史展開」と呼ばれることがありますので、現在のコマンドのコマンド履歴からデータを使用することができます.例えば、!!
我々の歴史の最後のコマンドです.なのでsudo !!
完全に有効です.ここでは「sudoとして最後のコマンドを実行します」と言います.!$
は最後のコマンドの最後の引き数です.最後のコマンドならnano /tmp/test.txt
, 私たちはcat !$
内容を調べる/tmp/test.txt
. !*
最後のコマンドのすべての引数に展開します.とにかく、これらのシンボルを使っているなら、コマンドを実行する前に「展開」するつもりです.私は走る
sudo !!
何を知っていることなく!!
. これを行うにはコマンドと呼ばれるmagic-space
. 我々の最初の「トリック」と同じように、我々はキーにそれを結合する必要があります.# Space, but magical
bind Space:magic-space
# Space, but magical
bindkey ' ' magic-space
今、私たちは書くことができましたsudo !!
その後、スペースを押してどのように見て!!
実行したいコマンドに変換します.結論
私たちは私たちのシェルでユーザーエクスペリエンスを向上させることができるいくつかのトリックを学んだ.私たちは矢印キーで検索を高速化する方法を学びました.我々が利用できるとわかりました
fzf
コマンド履歴で検索するにはctrl+r
. そして最後に、ヒストリー展開と呼ばれるこのことをちょっとした垣間見ることになりました.歴史を問い合わせるとともに、いくつかのコマンドを使用することができます.あなたの時間をありがとう.あなたがこの記事を役に立つとわかるならば、私の努力を支持したいbuy me a coffee ☕ .
Reference
この問題について(簡単にコマンド履歴をナビゲート), 我々は、より多くの情報をここで見つけました https://dev.to/vonheikemen/navigate-your-command-history-with-ease-1f5bテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol