vim-users.jp

Hack #19: Command-line mode補完 導入編

Posted at 2009/05/31
このエントリーをはてなブックマークに追加

Insert mode補完をマスターした後は、Command-line modeにおける補完機能についても習熟しましょう。導入編の本Hackでは、基本的なCommand-line mode補完について解説します。Command-line mode補完についての詳しい解説は:help cmdline-completionを参照してください。

Command-line modeで補完できる要素
Command-line modeでは状況に応じ、次のような要素を補完することができます。ちなみに補完できないときは、^Iが入力されます。
  • コマンド名
      Command-line modeの先頭で補完した場合。現在定義されているもののみが有効です。
  • コマンドの引数
      コマンドの後で補完した場合。補完される要素はコマンドにより異なります。
  • ファイル名
      :editコマンドの後で補完した場合。
  • オプション名
      :set:setlocalコマンドの後で補完した場合。
  • Key-mappings
      :map系のコマンドの後で補完した場合。
  • 変数名や関数名
      :if:callなどのコマンドの後で補完した場合。ただし、hoge#piyoのように、名前に#が含まれていると、うまく補完できません。
  • シェルコマンド名
      :!cmdなど、シェルを使用するコマンドの後で補完した場合。$PATH中のファイルをすべて認識しているようです。
  • ヘルプ
      :helpコマンドの後で補完した場合。日本語版のヘルプなら後ろに@ja、英語版のヘルプなら後ろに@enが付きます。
  • タグ名
      :tagコマンドの後で補完した場合。
  • オプションの設定された値
      :set option_name=の後で補完した場合。
  • また、Command-line mode補完では以下のキー操作が有効になります。
    <C-d>
    カーソル位置より前のパターンに一致する名前を一覧表示します。ディレクトリがマッチするときは強調表示されます。
    'wildchar'で指定されたキー
    カーソル位置より前にあるパターンに一致する単語を検索し、最初にマッチするものを挿入します。再度押すと、次にマッチするものを挿入します。最後のマッチの後には、最初のマッチが使われます。'wildchar'の規定値は<TAB>です。
    <C-n>
    'wildchar'を使った場合は次のマッチを挿入します。それ以外の時は、より次に使ったコマンドラインの履歴を呼び出します。
    <C-p>または<S-Tab>
    'wildchar'を使った場合は前のマッチを挿入します。それ以外の時は、より前に使ったコマンドラインの履歴を呼び出します。
    <C-a>
    カーソル前のパターンに一致する名前を全て挿入します。
    <C-l>
    カーソル位置より前のパターンに一致する単語の共通部分を挿入します。マッチするものが1個の場合はそれが挿入されます。
    パターン内ではワイルドカードとして ‘*’ と ‘?’ が使用できます。’*’ はあらゆる文字に一致し、’?’ は一文字に一致します。
    Shougo

    もどる
    blog comments powered by Disqus