まくまくVimノート
補完機能を使用してテキストを入力する
2008-02-01

前後のテキストから補完候補を探して補完入力する

入力モードでテキストを途中まで入力し、以下のように入力すると、前後のテキストを検索して、一致する文字列を補完入力してくれいます。

CTRL-P    "前方検索して補完
CTRL-N    "後方検索して補完
CTRL-Y    "決定

補完候補のテキストは、デフォルトでは以下の場所から順番に検索されます。

  1. カレントバッファ
  2. 他のウィンドウのファイル
  3. カレントバッファ以外のバッファ
  4. アンロードされたバッファ
  5. tags ファイル
  6. インクルードされているファイル(#include で指定されているファイル)

補完候補の検索先を変更するには、complete オプションを設定します。

:set complete=.,w,b,u,t,i    "Default

検索先は、以下のキーを優先順にコンマで区切って指定します。

.        カレントバッファから検索 ( 'wrapscan' の値は無視)
w        別のウィンドウ内のバッファから検索
b        バッファリスト内の、現在読み込まれている別のバッファから検索
u        バッファリスト内の、現在読み込まれていない別のバッファから検索
U        バッファリストにないバッファから検索
k        'dictionary' で指定されたファイルから検索
kspell   現在有効化されているスペルチェックを使う
k{dict}  {dict} で与えられたファイルから検索。"k" を複数指定してもよい。
         ファイル名はパターンでも指定できる。例: :set cpt=k/usr/dict/*,k~/spanish
s        'thesaurus' で指定されたファイルから検索
s{tsr}   {tsr} で与えられたファイルから検索。 "s" を複数指定してもよい。
         ファイル名はパターンでも指定できる。
i        カレントファイルとインクルードされるファイルから検索
d        カレントファイルとインクルードされるファイルから、
         定義された名前またはマクロを検索
]        タグ補完
t        "]" と同じ

詳しくは、:help 'complete' で確認することができます。

補完時に大文字小文字を区別する/しない

補完入力時の検索も、/ による検索と同様に、下記のオプションで大文字・小文字の扱いを設定します。

:set ignorecase    "大文字小文字を区別しない
:set noignorecase  "大文字小文字を区別する(デフォルト)

辞書ファイルに登録された単語を補完入力する (CTRL-X CTRL-K)

単語のリストを含んだ辞書ファイル(単なるテキストファイル)を用意しておき、それを補完候補として扱うことができます。 辞書ファイルによる補完入力を行うには、下記のように辞書ファイルのパスを設定しておきます。

:set dictinary=ファイル名,ファイル名, ...

入力モードで CTRL-X CTRL-K と入力すると、辞書ファイル内の単語を補完入力することができます。

ちなみに、CTRL-X CTRL-P(前方検索)による補完入力時に、辞書ファイル内の単語も検索対象に入れたい場合は、complete オプションに k を指定します(同時に dictionary オプションの方も設定しておく必要があります)。

:set complete=.,w,b,u,t,i,k

カレントディレクトリ内のファイル名の補完 (CTRL-X CTRL-F)

入力モードでファイル名を途中まで入力し、

CTRL-X CTRL-F

と入力すると、カレントディレクトリ内のファイル名を補完入力することができます。

2008-02-01