web-dev-qa-db-ja.com

Linuxターミナルでリアルタイムの完了/提案を取得する方法は?

Windowsでeverythingに似たものが欲しい(locateを使用):キーを押すたびに、現在の入力に一致するファイルリストがすぐに更新されます。

ターミナルでリアルタイムのテキスト補完を行うことは可能ですか?

より明確にするために、この関数を「foo」として実装し、コマンドラインでfoo aと入力してTABを押すと、aを含む名前を持つすべてのファイルのリストが表示されます。 bと入力し続けると(コマンドはfoo abになります)、ファイルリストは自動的に(他の何かを押す必要なしに)abを含むものに更新されます。

4
username123

このUnixとLinuxの投稿 はあなたが望むものを説明しています:

...私は素晴らしい、普遍的なツールに出会いました: command-line fuzzy Finder

主にファイルを「ファジー検索」することができます(上記のリンクでリッチGIFアニメーションを確認します)が、任意のテキストデータをフィードに送り、このデータをフィルター処理することもできます。したがって、ショートカットのアイデアは単純です。必要なのは、パス(ショートカット)を持つファイルを維持し、このファイルをファジーフィルター処理することだけです。外観は次のとおりです。cdgコマンドを入力し(必要に応じて "cd global"から)、ブックマークのリストを取得し、数回のキーストロークで必要なものを選択してEnterキーを押します。作業ディレクトリは、選択したアイテムに変更されます。

cdg

これは非常に高速で便利です。通常、必要な項目の3〜4文字を入力するだけで、他のすべての項目は既に除外されています。


探しているものではないかもしれませんが、Vimエディターで CtrlPプラグイン を使用してこれを使用できます。

enter image description hereenter image description hereenter image description here

これを機能させるには、vimvim-noxvim-gnomevim-gtk、またはvim-athenaのいずれかをインストールする必要があります。 CtrlPのインストール手順は そのWebサイト で提供されています:

  1. プラグインを別のディレクトリに複製します。

    $ cd ~/.vim
    $ git clone https://github.com/kien/ctrlp.vim.git bundle/ctrlp.vim
    
  2. 〜/ .vimrcに追加します。

    set runtimepath^=~/.vim/bundle/ctrlp.vim
    
  3. Vimのコマンドラインで実行します。

    :helptags ~/.vim/bundle/ctrlp.vim/doc
    
  4. Vimを再起動し、:help ctrlp.txtの使用手順と構成の詳細を確認します。

これまでにVimを使用したことがない場合は、少し怖いかもしれません。 vimtutorを実行して、それを理解してください。

3
muru

シェル用に独自の完了スクリプトを作成できます。

たとえば、bashは、単純なシェルスクリプト/関数を使用して補完します。 bash-completionsをまだインストールしていない場合はインストールし、いくつかの例について/usr/share/bash-completion/completionsを見てください。

スクリプトでlocateを呼び出すだけで、一致するリストを取得して返すことができます。

0
kraxor