Debianファイルの完成ごみ$_を修正する方法はありますか?

Debianファイルの完成ごみ$_を修正する方法はありますか?

私はSlackware Linuxについて長年の経験を持っていますが、この問題を見たことはありません。私は最近Debianサーバーを管理していますが、これが迷惑になりました。

私はしばしば、以前に入力したコマンドの最後の引数を繰り返すためにbashコマンドで "$_"を使用します。時々、次のような動作が表示されます。

dschrag@mo:~/dev/dancer$ ls -l アプリ/db/schema/
合計12個
-rw-r--r-- 1 dschrag dschrag 268 5月19日 10:51 gau_account.sql
-rw-r--r-- 1 dschrag dschrag 558 5月19日、13:02 gau_import.sql
-rw-r--r-- 1 dschrag dschrag 270 5月19日 13:09 gau_source.sql
dschrag@mo:~/dev/dancer$ cd $_
-bash: cd: _filedir: そのファイルやディレクトリはありません。
dschrag@mo:~/dev/dancer$

周りを見回すと_filedirで使われたものでした/usr/share/bash-completion/bash_completion

私はファイル補完機能を何も考えずに使用しているので、この欠陥が発生したときに何をしていたのかを理解するのは困難です。この問題を調査するのに苦労した人はいますか?

ベストアンサー1

プログラム可能な完了(「bash完了」)を有効にしました。これはソース/etc/bash_completionまたはbashrcのどこかで/usr/share/bash-completion/bash_completion行われます。たとえば、jessieのbashrcスケルトンでは、次のようになります。

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

完了する作業の1つはマルチングです$_。クイック修正はbashの完成をロードしないことです。

complete-filename別の回避策は、この関数の代わりにこの関数を使用してファイル名の完成を完了することですcomplete。これは代わりにESC/またはAlt+ /(端末の設定に応じて)を押すことを意味しますTabbindを使用または編集して、これらのキーがバインドされているキーを変更できます~/.inputrc

また、bashの完成に関するバグレポートを提出したいと思います。

おすすめ記事