web-dev-qa-db-ja.com

Ubuntuターミナルの特定のコマンドのオートコンプリートオプション

Ubuntu 18.04を実行していますが、Visual Studio Codeを使用してほとんどのコード編集を行っています。ターミナルからファイルを開くには、次のコマンドを実行します

code fileName.Java

Javaコードをコンパイルすると、ディレクトリに関連する.classファイルもあります。これは、次にファイルを開き、「Tab」を使用してコマンドを自動補完しようとすると、自動補完されることを意味します

code fileName.

codeコマンドのオプションを変更する方法を教えていただけますか?

code f

その後、Tabキーを押すと、オートコンプリートが実行されます

code fileName.Java

ただではなく

code fileName.
1
waitaria

これを.bashrcに追加します:

complete -f -X '!*.Java' code

source ~/.bashrc it一回。

  • -fは、filesのみで補完を行います。
  • -X patternにより、カスタムパターンを定義できます
  • このカスタム auto-completioncodeコマンドに対してのみ発生し、patternに一致しない補完は補完リストから削除されます。
1
αғsнιη

問題を解決する最良の方法は、bash完了スクリプトを作成することです。

お気に入りのテキストエディタを使用して、Javaという名前の新しいbash補完スクリプトを作成します。たとえば、nanoエディタにします。

user@pc:~$ Sudo nano /etc/bash_completion.d/Java

スクリプトにコードを挿入します。

_code()
{
  local cur=${COMP_WORDS[COMP_CWORD]}

  local IFS=$'\n'
  COMPREPLY=( $( compgen -f -X '!*.Java' -- $cur ) )
}

complete -o filenames -F _code code

変更を保存し、テキストエディターを閉じます。

最後にbash完了ルールを再読み込みします-最初のスラッシュの前に「ドット」と次のスペースに注意してください:

user@pc:~$ . /etc/bash_completion

このソリューションには2つの利点があります。

  1. スクリプトはシステム全体で機能します。
  2. ファイル名のスペースをサポートします。
1
Bob