IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

WSLで始めるUbuntu

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第17回 キーバインドできる機能について知ろう(3) (宮崎悟) 2020年3月

前回は履歴操作コマンドについて説明しました。今回は、補完コマンドについて説明します。

補完コマンドの機能

補完コマンドは、入力前もしくは入力中のテキストから候補を補完するコマンドです。補完はポイントまでのテキスト内容から候補を表示します。他の候補がない場合は、他の候補がない部分まで候補文字列を入力します。

$ ls
image1.jpeg  image1.png  image2.png  image3.png  photo.png
$ ls [TAB]
image1.jpeg  image1.png   image2.png   image3.png   photo.png
$ ls i[TAB]
 ↓
$ ls image
$ ls image[TAB]
image1.jpeg  image1.png   image2.png   image3.png
$ ls image1.[TAB]
image1.jpeg  image1.png
$ ls p[TAB]
 ↓
$ ls photo.png
  1. ls [TAB] では、カレントディレクトリ以下のファイルが補完候補になります。
  2. ls i[TAB] では、"i"から始まるファイルがimage なので、imageまで補完されます。
  3. ls image[TAB]では、"image"で始まる4ファイルが補完候補になります。
  4. ls image1.[TAB]では、"image1."から始まる2ファイルが補完候補になります。
  5. ls p[TAB] では、"p"で始まるファイルが"photo.png"しか無いので、"photo.png"が保管されます。
補完コマンド

bashの補完コマンドは以下のとおりです。

  • complete(TAB) ポイントの前のテキストについて補完を試みます。bashが補完を行う際には、以下の順で候補を表示します。以下の候補に該当しない場合には、ファイル名の補完を試みます。

    • 変数(テキストが$で始まる場合)
    • ユーザ名(テキストが~で始まる場合)
    • ホスト名(テキストが@で始まる場合)
    • コマンド(エイリアスや関数も含みます)
  • possible-completions(M-?) ポイントの前のテキストの補完候補を列挙します。

  • insert-completions(M-*) ポイントの前のテキストを補完して得られるものを全て挿入します。挿入されるものは、possible-completionsで列挙されるものと同じです。

  • menu-complete completeコマンドに似ていますが、補完される単語を補完候補リストのうちの1つと置換します。 menu-completeを繰り返して実行すると、補完候補のリストが次々と順番に挿入されます。補完リストの最後まで来るとベルが鳴らされ、元のテキストに戻ります。引数nを指定すると、リスト中の位置がn個進みます。負の引数を指定すると、リスト中を逆向きに戻れます。このコマンドはTABに割り当てることを意図して用意されたものですが、デフォルトではcompleteが割り当てられます。

  • menu-complete-backward menu-completeコマンドに似ていますが、menu-completeに負の引数を与えたときのように、補完候補のリストを逆向きに進みます。

  • delete-char-or-list カーソルが行頭や行末に無ければ、カーソルの下の文字を削除します(delete-charと同様です)。カーソルが行末にある場合は、possible-completionsと同じ動作をします。

  • complete-filename(M-/) ポイントの前のテキストについて、ファイル名の補完を試みます。

  • possible-filename-completions(C-x/) ポイントの前のテキストについて、ファイル名として補完候補を列挙します。

  • complete-username(M-~) ポイントの前のテキストについて、ユーザ名として補完を試みます。

  • possible-username-completions(C-x~) ポイントの前のテキストについて、ユーザ名として補完候補を列挙します。

  • complete-variable(M-$) ポイントの前のテキストについて、シェル変数として補完を試みます。

  • possible-variable-completions(C-x$) ポイントの前のテキストについて、シェル変数として補完候補を列挙します。

  • complete-hostname(M-@) ポイントの前のテキストについて、ホスト名とし補完を試みます。

  • possible-hostname-completions(C-x@) ポイントの前のテキストについて、ホスト名とし補完候補を列挙します。テキストはホスト名として扱います。

  • complete-command(M-!) ポイントの前のテキストについて、コマンド名として補完を試みます。コマンド補完の際にマッチングを試みる順序は、エイリアス、予約語、シェル関数、シェルの組み込みコマンド、実行ファイルです。

  • possible-command-completions(C-x!) ポイントの前のテキストについて、コマンド名として補完候補を列挙します。

  • dynamic-complete-history(M-TAB) ポイントの前のテキストについて補完を試みます。履歴リストの各行に対してテキストの比較が行われ、マッチしたものが補完の候補となります。

  • dabbrev-expand ポイントの前のテキストについてメニュー補完を試みます。履歴リストの各行に対してテキストの比較が行われ、マッチしたものが補完の候補となります。

  • complete-into-braces(M-{) ファイル名補完を実行し、補完候補のシェルから利用可能なように"{}"に囲まれたリストを挿入します。

    $ ls
    image1.jpeg  image1.png  image2.png  image3.png  photo.png
    $ ls i[M-{]
     ↓
    $ ls image{1.{jpeg,png},2.png,3.png}
  • glob-complete-word (M-g) ポイントの前の単語がパス名展開のパターン(末尾に暗黙のアスタリスクが付いている)として扱われます。このパターンを使って補完候補のファイル名のリストが生成されます。

    $ ls image[M-g]
    image1.jpeg  image1.png   image2.png   image3.png
  • glob-expand-word (C-x *) ポイントの前の単語がパス名展開のパターンとして扱われ、 この単語と置き換えられる形でマッチするファイル名のリストが挿入されます。 数字の引き数を与えると、パス名展開する前にアスタリスクを末尾へ追加します。

    $ ls image?.*[C-x *]
     ↓
    $ ls image1.jpeg  image1.png   image2.png   image3.png
  • glob-list-expansions (C-x g) glob-expand-word で生成されるのと同じ展開結果のリストが表示され、 行が再描画されます。 数字の引き数を与えると、パス名展開する前にアスタリスクを末尾へ追加します。

    $ ls image?.*[C-x g]
    image1.jpeg  image1.png   image2.png   image3.png
以下次回

今回は、補完コマンドについて説明しました。次回は、よく使用するその他のキーバインド用コマンドについて説明します。次回をお楽しみに。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes