問題タブ [bash-completion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - Gitが完了し、PS1が機能しない:「sudo-s」の「__ git_ps1:コマンドが見つかりません」またはUbuntu12.04の「sudosu」
gitとgit-flowcompletionをインストールして、これらの行をルートの.bashrcとUbuntu12.04マシンのnormal_userに追加しました。
rootまたはnormal_userとしてログに記録すると、gitの完了が機能します。ただし、「sudo-s」または「sudosu」を使用すると、gitの完了が機能せず、Returnキーを押すたびに「__ git_ps1:コマンドが見つかりません」というメッセージが表示され続けます。「source」コマンドを削除して「apt-getinstallbash-completion」を使用しようとしました(bash-completionはすでにインストールされています)。したがって、2つのソースがなくても、まったく同じ動作が得られます。
誰かが問題が何であるか、そしてそれをどのように機能させるかを知っていますか?
bash - Bash補完コマンド
私の職務では
これにより、notes_で始まるすべてのコマンドと、あるディレクトリ内のすべてのファイルが一覧表示されます。これは、のように呼び出された場合に表示されnotes --complete
ます。ただし、タブ補完を使用しようとすると
コマンドではなくファイルのみが表示されますか?
bash - 「完了」と「メニュー完了」を連携させる
Bashシェルは、すべての可能性が次の行にリストされている「従来の」オートコンプリートとは異なるタイプのオートコンプリートをサポートしていることがわかりました。
「従来の」オートコンプリートでは、入力ch
してからキーを押すと、次のTab
ようになります。
しかし、次の行を自分に追加すると/etc/inputrc
(Tabキーが組み込みmenu-complete
関数に再マップされます):
次に、シェルの動作が変更されます。補完される単語は、可能な補完のリストからの単一の一致に「インライン」で置き換えられ、Tabキーをもう一度押すと、単語は次の一致に置き換えられます。
これは便利だと思いましたが、それでも従来のオートコンプリートを維持し、キーの組み合わせにバインドしたいと思いましたCtrl + Tab
。そこで、ライブラリのドキュメントが示唆/etc/inputrc
しているように、ファイルに次の行を追加しました。readline
ただし、この行を追加すると、両方が作成されTab
、Ctrl-Tab
従来のcomplete
関数が呼び出されるように見えます。
誰かが私が間違っていることを知っていますか?
前もって感謝します!
bash - emacsの「minibuffer-complete」のように部分パスを拡張するようにbash補完を構成するにはどうすればよいですか?
emacsの「minibuffer-complete」コマンドのように、部分的に入力されたツリー構造を展開するようにbashシェルを構成したいと思います。
foo1とfoo2の2つのフォルダーがあるとします。foo1にはサブフォルダーsub1が含まれ、foo2にはサブフォルダーwowが含まれます。ので、私は持っています:
foo1 / sub1 /
foo2 / wow /
今、私がタイプした場合、emacsでファイルを開くとき
f / w
Tabキーを押すと、自動的に「foo1 /wow/」に展開されます。
bashでも同様の機能を使用したいと思います。何か案は?
bash - 増分ディレクトリ補完を使用したbashプログラマブルタブ補完
多数の有効な引数を受け入れることができるプログラムがあります。これらの多くには共通のプレフィックスがあり、ディレクトリツリー構造になっています。多くの場合、オプションは存在せず、一部のディレクトリはスラッシュの有無にかかわらず使用できますが、一部のディレクトリはスラッシュなしでのみ使用できます。
この選択肢のリストを表示し、以下のように引数を押して部分的に完了するとコマンドラインを変更するbash完了がすでにある場合:
通常のファイル/ディレクトリの完了のようにこれを行うbashの完了のためにそれを変更するにはどうすればよいですか?
と
bash - bash履歴CTRL+Rの動作
CTRL+でコマンドを検索しようとしてもR見つからないことがありますが、最近使用したり、CTRL+Rで検索したりして成功しました。
`historyを実行した後、コマンドを再度見つけることができます。
この動作は正常ですか?どのように変更できますか?
bash - teamocil の bash 補完
teamocilの bash オートコンプリートを定義しようとしています。入力すると、ファイル拡張子のないteamocil <tab>
フォルダー内のファイル名で完了する必要があります~/.teamocil/
。ウェブサイトに例がありzsh
ます:
でこれをどのように使用できbash
ますか?
編集: michael_n の回答の影響を受けて、ワンライナーを思いつきました:
bash - bash の補完が以前のように機能しない -- スペースやファイル名の奇妙な部分をエスケープしないなど
わかりました、これが自動的に機能しない理由がわかりません。
Mac で作業しているとき、bash でオートコンプリートを行うと、スペースやその他の奇妙な文字が自動的にエスケープされますが、ubuntu ボックスではそうではありません。さらに悪いことに、文字をエスケープしてからオートコンプリートを試みると、エスケープが消えてしまいます。なぜ debian の bash complete は、箱から出してエスケープする必要があるスペースやその他の文字を処理する方法を知らないのですか??
bash - なぜbashのバックスラッシュ?
次のように ~/.bashrc に変数をエクスポートしました (その後にソース ~/.bashrc が続きます)
コマンドラインを使用しているとき、次の方法で $w のサブディレクトリにアクセスしようとします
このあとタブキーを押すと謎のバックスラッシュが出る
それ以上のタブ補完を無効にします。なんで?vi
であっても発生するため、特定できない場合がありls
ます。
Ubuntu 11.04 を実行する Bash バージョン 4.2.24(1)-release (i686-pc-linux-gnu)
回避策の編集: タブを押す前に Esc+Ctrl+E を押します。
bash - ファイルを探すときにディレクトリにスラッシュを含めるようにcompgenを取得する
カスタム補完から次の動作を取得したい
与えられた
これを手に入れたい
compgen -f f
が出力されると思いましたがfoo faz/
、foo faz
あまり役に立ちません。
出力を後処理する必要がありますか、それとも機能する compgen のオプションの魔法の組み合わせがありますか?