特にLinux Mint 14でbash 4.2.37を使用しています。
と入力して環境変数の名前をオートコンプリートするTabと、変数名の後にスペースが続きます。
変数の値がたまたまディレクトリ名である場合は、変数名の後にを続けて展開します/。
たとえば、次のように入力すると、
$ ls $HOM<tab>
次のように展開されます。
$ ls $HOME _
where _はカーソルの位置を示します。問題は、私はその後、通常私が入力しなければならないことを意味自分のホームディレクトリの下にいくつかのファイルまたはディレクトリの名前を入力し続けていきたいということでbackspace、その後と/。
私はそうしたい上記にまで拡大します。
$ ls $HOME/_
変数名全体を入力したときにも同じことが起こります。の後ls $HOME、tabスペースを追加し、それに/。
(もちろん/、変数の値がディレクトリ名でない場合は、を追加したくありません。)
bashコマンドを使用するか、bashコマンドを更新することで、bashに希望どおりの動作をさせることができる方法はありますか$HOME/.inputrc?
注:私は特にtab私が望むように動作させる方法を探しています。異なるキーストロークで同じ動作を実現する方法は興味深いでしょうが、私の質問には答えられません。
(/etc/profile.d/bash_completion.shシステムとの相互作用が不十分なため、システムで無効にしましたset -o nounset。簡単な実験により、これはおそらく私の質問には関係ないことが示されています。)
ちなみに、tcshはこれを行います。環境変数$FOOBARを指定$FOOBA<tab>する$FOOBAR/と、ディレクトリを参照している場合は$FOOBAR(スペース付きで)参照している場合、タイピングは展開されます。いいえ、tcshに戻るように説得するには十分ではありません。zshもこれを行います。