filetype.txt For Vim バージョン 8.2. Last change: 2021 Sep 22
VIMリファレンスマニュアル by Bram Moolenaar
ファイル形式 filetype file-type
1. ファイル形式 filetypes
2. ファイル形式別プラグイン filetype-plugins
3. 標準で付属する形式別プラグインの解説 ftplugin-docs
autocmd.txtも参照。
==============================================================================
1. ファイル形式 filetypes file-types
Vimは編集しているファイルの形式を検出することができる。これはファイル名をチェ
ックしたり、場合によってはファイル内に特定のテキストがあるかを調べることで実現
されている。
:filetype :filet
ファイル形式の検出を有効化するには、vimrcファイルでこのコマンドを使用する:
し 'filetype' オプションを設定しようと試みる。それが構文強調やオプションの設
定、その他を行うために使われるFileTypeイベントのきっかけとなる。
NOTE: Vi互換とは全てのオプションがグローバルであることを意味するので、ファイル
形式識別と 'compatible' は同時に使うことはできない。既に 'compatible'を設定し
ている場合には、それを解除する必要がある。
詳細: ":filetype on" コマンドは次のファイルのうち1つをロードする。
Amiga $VIMRUNTIME/filetype.vim
Mac $VIMRUNTIME:filetype.vim
MS-Windows $VIMRUNTIME\filetype.vim
Unix $VIMRUNTIME/filetype.vim
VMS $VIMRUNTIME/filetype.vim
このファイルはBufNewFileとBufReadイベントに対する自動実行コマンドを定
義するVim scriptファイルである。ファイル形式がファイル名から決定できな
い時には、ファイルの内容を検出するために$VIMRUNTIME/scripts.vimが使用
される。
GUIで使用しているとき、またはGUIを開始しようとしているときには、
menu.vim も読み込まれる。これを避けるには 'go-M' を参照。
独自のファイルタイプを追加するには、下のnew-filetypeを参照。あるファイルタイ
プについてのヘルプを検索するには、ファイルタイプ名の前に "ft-" をつけ、さらに
必要に応じて "-syntax", "-indent", "-plugin" をつける。例:
ファイル形式を自動的に検出できなかった場合や、間違った形式になってしまった場合
には、'filetype' オプションを手動で設定するか、ファイルにモード行(modeline)を
追加する選択肢がある。例として、IDLファイルに設定するにはこのコマンドを使うか:
このmodelineをファイルに追加する:
/* vim: set filetype=idl : */
:filetype-plugin-on
ファイル形式別プラグインのロードを有効化するには:
これは実際には 'runtimepath' にある "ftplugin.vim" をロードする。
結果的にファイルが編集される時に対応するプラグインファイルがロードされる(ただ
し検出したファイル形式に合致するプラグインファイルがあった時のみ)。
filetype-plugin
:filetype-plugin-off
ファイル形式別プラグインを無効化するには:
した場合には、プラグインもロードされなくなる。
これは実際には 'runtimepath' にある "ftplugof.vim" をロードする。
:filetype-indent-on
ファイル形式別インデントのロードを有効化するには:
これは実際には 'runtimepath' にある "indent.vim" をロードする。
結果的にファイルが編集される時に対応するインデントファイルがロードされる(ただ
し検出したファイル形式に合致するインデントファイルがあった時のみ)。
filetype-plugin
:filetype-indent-off
ファイル形式別インデントを無効化するには:
した場合には、インデントファイルもロードされなくなる。
これは実際には 'runtimepath' にある "indoff.vim" をロードする。
そうすると、これから開くファイルに対して自動インデントが無効になる。すでに開い
ているファイルに対しては何も変わらない。すでに開いているファイルに対して自動イ
ンデントを無効にするには 'autoindent', 'cindent', 'smartindent', 'indentexpr'
をオフにする。
:filetype-off
ファイル形式の検出を無効にするには、次のコマンドを使用する:
ル形式は検出されなくなるので、次に ":filetype on" をするまではそれらは動作しな
くなる。
概要: :filetype-overview
コマンド 検出 プラグイン インデント
:filetype on 有効 変化なし 変化なし
:filetype off 無効 変化なし 変化なし
:filetype plugin on 有効 有効 変化なし
:filetype plugin off 変化なし 無効 変化なし
:filetype indent on 有効 変化なし 有効
:filetype indent off 変化なし 変化なし 無効
:filetype plugin indent on 有効 有効 有効
:filetype plugin indent off 変化なし 無効 無効
現在の状態を知るには次のようにタイプする:
ファイル形式は構文強調にも利用される。":syntax on" コマンドが使用されると、ファ
イル形式検出もインストールされる。":syntax on" の後に ":filetype on" を実行す
る必要はない。
特定のファイル形式を無効にするには、自分のファイル形式ファイルに1行追加する。
remove-filetype参照。
filetype-detect
再びファイル検出を有効化するには:
してからコレを使用する。例えば、シェルスクリプトの中で "#!/bin/csh" を入力して
からということ。
ファイル形式検出が無効になっていた時には、引数 "on" が指定された時のように、
初めに有効化される。
filetype-overrule
同じ拡張子が2つのファイル形式で使用されている時には、Vimはファイルがどのような
種類であるかを推測する。これは常に動作するわけではない。ある拡張子に対してどの
ファイル形式を使うか明示的に指定するのに、幾つかのグローバル変数を使うことがで
きる:
ファイル名 変数
*.asa g:filetype_asa ft-aspvbs-syntax ft-aspperl-syntax
*.asm g:asmsyntax ft-asm-syntax
*.asp g:filetype_asp ft-aspvbs-syntax ft-aspperl-syntax
*.fs g:filetype_fs ft-forth-syntax
*.i g:filetype_i ft-progress-syntax
*.inc g:filetype_inc
*.m g:filetype_m ft-mathematica-syntax
*.p g:filetype_p ft-pascal-syntax
*.pl g:filetype_pl
*.pp g:filetype_pp ft-pascal-syntax
*.prg g:filetype_prg
*.sh g:bash_is_sh ft-sh-syntax
*.tex g:tex_flavor ft-tex-plugin
*.w g:filetype_w ft-cweb-syntax
filetype-ignore
特定のファイルが検査されないようにするには、g:ft_ignore_pat 変数を使う。この変
数はデフォルトで次のように設定されている。
new-filetype
使いたいファイル形式がVimに検出されない(存在しない)場合には、その形式を追加す
る4つの方法がある。どちらにせよファイル$VIMRUNTIME/filetype.vimは変更するべき
ではない。そのファイルは新しいVimをインストールする際に上書されるのだから。
A. デフォルトのファイルタイプの検査をくつがえす。
この方法はファイルタイプごとにファイルを作ることで機能する。不便な点は
ファイルがたくさんになってしまうこと。便利な点は適切なディレクトリにファ
イルを置くだけで機能すること。
ftdetect
1. ユーザーランタイムディレクトリを作成する。通常は 'runtimepath' オプション
に記載される最初の項目を使えば良い。次にそのディレクトリに "ftdetect" と
いうディレクトリを作成する。UNIXを例に挙げる:
2. ファイル形式を検出する自動実行コマンドを含むファイルを作成する。
例:
義されている。パターンに "*" を使いファイルの内容から判断することもで
きる。
そのファイルを例えば "mine.vim" という名前で先程の "ftdetect" ディレク
トリに保存する。UNIXを例に挙げる:
3. 新しいファイル形式の検出を有効化するにはVimを再起動しなければならない。
"ftdetect" ディレクトリの中のファイルはデフォルトの検査のあとに使われるの
で、それ以前に決定したファイルタイプを変更することができる。しかしここで
:setfiletypeを使えば、それ以前に決定したファイルタイプをそのままにしてお
くこともできる。
B. デフォルトのファイルタイプの検査の後にファイルタイプを決定する。
上と同様。ただし、無条件に 'filetype' を設定する代わりに、':setfiletype' を
使う。これはファイルタイプがまだ認識されていないときだけ 'filetype' を設定
する。次に例を示す。
すでに認識されたファイルタイプをコマンドから使うことができる。例えば、ファ
イルタイプが "pascal" だった時にファイルタイプを "mypascal" に設定するには:
C. ファイル形式が名前だけで検出できる場合。
1. ユーザーランタイムディレクトリを作成する。通常は 'runtimepath' オプション
に記載される最初の項目を使えば良い。UNIXを例に挙げる:
2. ファイル形式を検出する自動実行コマンドを含むファイルを作成する。
例:
する。UNIXを例にあげる:
3. 新しいファイル形式の検出を有効化するためにVimを再起動する。
作成したfiletype.vimはデフォルトのFileType自動実行コマンドがインストールさ
れる前に読み込まれる。そのため新しく作成した自動実行コマンドが先に適合し、
":setfiletype" コマンドがこれ以後に他の自動実行コマンドにより 'filetype' が
設定されないことを保証する。
new-filetype-scripts
D. ファイル形式がファイルの内容を調べる事によってのみ検出可能な場合。
1. ユーザーランタイムディレクトリを作成する。通常は 'runtimepath' オプション
に記載される最初の項目を使えば良い。UNIXを例に挙げる:
2. ファイルの内容で形式を決定する Vim script を作成する。例:
このファイルを "scripts.vim" としてユーザーランタイムディレクトリに保存
する。UNIXを例に挙げる:
3. これだけで検出は正しく動作し、Vimを再起動する必要は無い。
新しく作成したscripts.vimはデフォルトのファイル形式チェックの前に読み込まれ
るので、$VIMRUNTIME/scripts.vimに書かれたデフォルトの判定規則を上書きするこ
とができる。
remove-filetype
ファイル形式が誤って検出されたならば、(上を参考に)それを補正するfiletype.vimか
scripts.vimをインストールする。'filetype' に存在しない形式の名前を設定すれば、
それ以降の検出スクリプトで別の値が設定されてしまうのを避けることができる:
複数人で使用する環境を設定していて、個々のユーザーにはファイル形式を追加/削除
させたくないならば、ランタイムディレクトリに置いて全ユーザーが共有するように
filetype.vimとscripts.vimを書く必要がある。そのスクリプトを置くディレクトリに
は 'runtimepath' の示すうちのどれか1つを選択する。'runtimepath' の中に設定を置
きたいディレクトリが見あたらなければ、system-vimrc内で正しく追加する必要があ
る。既に設定されているデフォルトのディレクトリを変更しないように注意。
autocmd-osfiletypes
NOTE: RISC OS サポートが削除されたため、このコードは現在無効化されている。将来
これは 'filetype' オプションを使用することになるだろう。
ファイルと共に「形式」を記録できるオペレーティングシステム(OS)では、ファイルが
ある「形式」だった時にだけ実行される自動コマンドを設定することができる。
実際の「形式」チェックはVimをどのプラットフォームで使用しているかに依存する;
詳細は使用しているシステムの解説書を参照のこと。
OSによる「形式」を利用するには自動実行コマンドの検出パターンの場所に、次の例に
示すように折カッコで囲んだ検出させたい「形式」のリストを書く:
これは以下に適合する:
- ファイル名が ".html" で終了するあらゆるファイル
- 「形式」が "&faf" か "HTML" である全てのファイル。ただしここでいう「形式」と
はVimのバージョン(稼動しているOS)によって定義される。未知の形式は適合しない
とみなされる。
「形式」とパターンを同時に指定することもできる (そのような場合には、両方共マッ
チする必要がある):
これは「形式」が "&fff" で名前が "diff" で始まるファイルに適合する。
plugin-details
"plugin" ディレクトリは 'runtimepath' オプションに示されているならば、どのディ
レクトリに置いても良い。そこに示された全てのディレクトリにあるプラグインが検索
され読み込まれる。例えば、次のコマンドを実行すると:
次の内容が出力される:
runtimepath=/etc/vim,~/.vim,/usr/local/share/vim/vim82
この時Vimは以下に示すディレクトリとそれ以下にある全てのプラグインを読み込む:
/etc/vim/plugin/
~/.vim/plugin/
/usr/local/share/vim/vim82/plugin/
最後の1つは$VIMRUNTIMEが展開されたものであることに注意。
Note: プラグインマネージャーや packages を使っている場合、たくさんのディレク
トリが 'runtimepath' に追加される。これらのプラグインはそれぞれに自分用のディ
レクトリが必要であり、~/.vim/plugin に直接置いてはいけない。
プラグインが読み込まれていないらしい場合はどうすれば良いのか? Vim起動時に-V
引数を使用すれば何が起こっているか知ることができる:
多くのメッセージが表示されるが、プラグインの読み込みの前には特定の記述がなされ
る。それは次のように始まる:
Searching for "plugin/**/*.vim" in
これを見ればVimがプラグインスクリプトをどこから探しているのかがわかる。
==============================================================================
2. ファイル形式別プラグイン filetype-plugins
ファイル形式プラグインが有効になっていれば:filetype-plugin-on、プラグイン読
込時にオプションが設定されキーマップが定義される。それらは全てバッファローカル
で、他のファイルに対しては決して作用しない。
ファイル形式により定義されるキーマップが自分で定義したキーマップの邪魔になるこ
ともあり得る。幾つかこれを回避する方法がある:
1. "maplocalleader" にキーマップの先頭に使用するキーシーケンスを設定する。例:
キーになる。<LocalLeader>も参照。
2. 独自のマップを定義する。例:
プラグインファイルの説明をチェックする必要がある。
独自のキーマップはプラグインが読み込まれる (つまりその形式のファイルが読み
込まれる) 前に定義する必要がある。そうすればプラグインはデフォルトキーマッ
ピングのインストールを行わない。
no_mail_maps
3. 特定のファイル形式についてキーマップを無効化するならば、そのファイル形式名
を含むある変数を設定する。ファイル形式 "mail" のキーマップを無効にするには
次のようにする:
4. ファイル形式による全てのキーマップを無効化するには次の変数を設定する:
ftplugin-overrule
グローバルな($VIMRUNTIMEにある、システムが提供する)ファイル形式プラグインが
キッチリ望むように動作しない場合には、これを変更する方法が3通りある:
1. 設定を追加する。
新しいファイル形式プラグインを作り、'runtimepath' の始めのほうに置く。一例
として、UNIXではこのファイルを利用できる:
これの後に読み込まれるので、ここで行った設定は上書される可能性がある。その
ような場合には以下の2つの方法のどちらかを利用する。
2. プラグインのコピーを作成し、そちらを変更する。
'runtimepath' の始めのほうにそのプラグインのコピーを置く。一例として、UNIX
ではこのように行う:
b:did_ftpluginが設定されていれば、グローバルプラグインは読み込まれない仕組
みになっていることによる。
この方法には、配布されるプラグインが改良された際に、再びコピーし同じように
変更しなければならない、という短所がある。
3. グローバルプラグインの読み込み後に設定を上書きする。
'runtimepath' の最後に、新しいファイル形式プラグインを作成する。一例として、
UNIXではこのファイルを利用できる:
==============================================================================
3. 標準で付属する形式別プラグインの解説 ftplugin-docs
AWK ft-awk-plugin
@include のような、GNU Awk 固有の機能のサポートは、以下の設定で有効にできる:
チェンジログ(CHANGELOG) ft-changelog-plugin
{訳注: エントリ=日付ごとの区切り アイテム=日付内の項目}
チェンジログファイルを簡単に扱うことを可能にする。いくつかの便利なコマンドや
マッピング、変数がある。
オプション:
'comments' フォーマットを崩さないように空に設定される。
'textwidth' 標準的な値である78に設定される。
'formatoptions' テキストを折り返すために 't' が加えられる。
コマンド:
NewChangelogEntry 適切にアイテムを追加する(以下参照)。
ローカルマッピング:
<Leader>o 上と同様に適切にアイテムを追加する(以下参照)。
グローバルマッピング:
NOTE: グローバルマッピングはあらかじめ
ftplugin/changelog.vim を実行することで有効になる。
例えば
{訳注: この例だと間違えてこのまま書いちゃいそう。}
<Leader>o カレントディレクトリに "ChangeLog" というファイルがあ
れば開き、既に開かれていればバッファを切替える。そして
上記のローカルマッピング<Leader>oと同じように働く。
変数:
g:changelog_timeformat 非推奨。g:changelog_dateformatを使うこと。
g:changelog_dateformat エントリに入れる日付(と時間)の書式。
使えるフォーマットは strftime() と同じ。
デフォルトでは標準的に使われている "%Y-%m-%d" が設定
されている。
g:changelog_username ユーザーの名前とメールアドレス。
デフォルトは環境変数とシステムファイルから推定され
る。まずカレントユーザーについての情報を得るために
/etc/passwd を探す。そこの最初の区切りにユーザーの実
名があることを期待している。次に環境変数の$NAMEを
チェックする。最後にアドレスを得るためにwhoamiと
hostnameを実行する。最終的に次のような値を決定す
る。
g:changelog_new_date_format
エントリを作成するときの書式。
次の特別な文字が使える:
%% 一つの '%' が入る
%d 上記で定義した日付
%u 上記で定義したユーザーの名前
%p b:changelog_entry_prefix の結果
%c 作成後のカーソルの位置
デフォルトは "%d %u\n\n\t* %p%c\n\n"。これは次のよう
になる ( | はカーソルの位置を示している。しかし、行頭
の | は行の始まりを表す)
g:changelog_new_entry_format
アイテムを作成するときの書式。
次の特別な文字が使える:
%p b:changelog_entry_prefix の結果
%c 作成後のカーソルの位置
デフォルトは "\t*\c"。これは次のようになる
g:changelog_date_entry_search
日付エントリを探すための検索パターン。
g:changelog_new_date_formatと同じ特別な文字が使え
る。デフォルトは '^/\s*%d\_s*%u' で、次のような行
g:changelog_date_end_entry_search
日付エントリの終端を探すための検索パターン。
g:changelog_new_date_formatにおけるトークンと同じもの
が使用できる。デフォルトは '^\s*$' で、空白文字のみを
含む行または完全な空行を検索する。
b:changelog_name b:changelog_name
チェンジログファイルの名前。
既定値は 'ChangeLog'。
b:changelog_path
カレントバッファに使うチェンジログのパス。
既定では空文字列で、カレントバッファと同じディレクトリ
から b:changelog_name という名前のファイルが検索され
る。それが見つからない場合は、カレントバッファの親
ディレクトリを検索する。ファイルが見つかるか、それ以上
上がれなくなるまで、再帰的にこれが繰り返される。
b:changelog_entry_prefix
新しいエントリのプリフィックスを生成するための関数の名
前を指定する。関数は引数を取らず、プリフィックスの文字
列を返す。関数は空文字を返しても構わない。
デフォルトでは ChangeLog のパスとカレントバッファのパ
スの間の最短パスが使用される。
将来的には他の変数コンテキスト (例えば g:) でも指定で
きるようになる予定である。
チェンジログエントリは適切な位置に挿入される。現在の日付とユーザーを得た後
に、その日付とユーザーのエントリをファイルから探し、見つかればその下にアイテ
ムを加える。なければ新しいエントリとアイテムをファイルの先頭に加える。
フォートラン(FORTRAN) ft-fortran-plugin
オプション:
'expandtab' .vimrcでfortran_have_tabsが指定されなければ、フォートラン標準
に従ってタブ文字を避けるために有効にする。
'textwidth' フォートラン標準に従って固定形式のソースでは72に、自由形式の
ソースでは80に設定される。
'formatoptions' コードとコメントを分けて、長い行を保持するように設定される。
これによりgqでコメントを整形できる。
fortran_have_tabsについての議論とソース形式の判定法については
ft-fortran-syntaxを参照。
GIT COMMIT ft-gitcommit-plugin
現在のコミットの差分をプレビューウィンドウに表示する :DiffGitCached というコマ
ンドが提供されている。このコマンドを実行すると、その引数をつけて "git diff
--cached" が実行される。
GPROF ft-gprof-plugin
gprof ファイルタイププラグインは gprof のフラットプロファイルもしくはコールグ
ラフの関数エントリからコールグラフの関数の詳細へジャンプする <C-]> マッピング
を定義する。
このマッピングを無効にするには:
メール(MAIL) ft-mail-plugin
オプション:
'modeline' トロイの木馬の危険を避けるのと、「件名」に含まれる "Vim:" がエ
ラーメッセージの原因となる可能性を排除するために、モード行はオ
フになる。
'textwidth' 72に設定する。e-mailでは良く推奨される値。
'formatoptions' テキストを折返し、新しい行ではコメントリーダーを繰り返すように
設定。引用記号の ">" が繰り返される。
これによりgqで引用文を整形できる。
ローカルキーマップ:
<LocalLeader>q or \\MailQuote
ビジュアルモードでは選択されたテキストを、ノーマルモードではカーソルの
位置からファイル末端までのテキストを引用する。これは全ての行に "> " が
挿入されることを意味している。
MAN ft-man-plugin :Man man.vim
このプラグインはマニュアルページを洗練された方法で表示する。ユーザーマニュアル
の詳細な情報は find-manpage も参照のこと。
マニュアルページが読み込まれる前に :Man を利用するには、起動 vimrc ファイ
ルでこのスクリプトを読み込む必要がある:
オプション:
'iskeyword' マニュアルページの名前の上で CTRL-] の利用をサポートするように
するために文字 '.' が追加される。
コマンド:
Man {name} {name} についてのマニュアルページを表示する。
Man {number} {name}
{number} セクションの {name} についてのマニュアルページを表示
する。
グローバルキーマップ:
<Leader>K カーソル下の単語についてのマニュアルページを表示する。
<Plug>ManPreGetPage
同上、マッピングを使うことを可能にする:
ローカルキーマップ:
CTRL-] カーソルの下の単語についてのマニュアルページへ移動する。
CTRL-T 直前のマニュアルページへ戻る。
q :quit コマンドと同じ。
水平の代わりに垂直分割を使用するには:
折り畳み folding を有効にするにはこの変数を使う:
望んだ折り畳みスタイルを追加できる。例:
:Man {number} {name} が man {number} {name} のように振る舞い、ページが見つから
ない場合に man {name} を実行させたくなければ、これを使用する:
'keywordprg' を設定して、K コマンドを Vim ウィンドウのマニュアルページにもで
きる:
MANPAGER manpager.vim
:Man コマンドを使うと、Vim をマンページにできる(その構文はマンページをハイラ
イト表示し、CTRL-] でヒットしたリンク先のマンページをたどる)。
bash, zsh, ksh もしくは dash の場合、設定ファイル (.bashrc, .zshrc, ...) に以
下の設定を追加する。
export MANPAGER="vim -M +MANPAGER -"
(t)csh の場合、設定ファイルに以下の設定を追加する。
setenv MANPAGER "vim -M +MANPAGER -"
fish の場合、設定ファイルに以下の設定を追加する。
set -x MANPAGER "vim -M +MANPAGER -"
MARKDOWN ft-markdown-plugin
折り畳みを有効にするには、次のようにする:
PDF ft-pdf-plugin
PDF ファイル内をジャンプするため、タグスタックをシミュレートする <C-]> と<C-T>
という2つのマップが提供されている。次のものがタグとして扱われる:
- "startxref" の後から xref テーブルまでのバイトオフセット
- トレイラー内の /Prev キーから前の xref テーブルへのバイトオフセット
- xref テーブル内の "0123456789 00000 n" という形式の行
- PDF 内の任意の位置における "1 0 R" のようなオブジェクト参照
これらのマップは次のコマンドで無効化できる
PYTHON ft-python-plugin PEP8
デフォルトでは、PEP8 に従って以下のオプションが設定されている:
この動作を無効にするには、あなたのvimrcに次の変数を設定する:
QF QUICKFIX qf.vim ft-qf-plugin
"qf" ファイルタイプは quickfix ウィンドウに使用される。quickfix-window を参
照。
quickfix ファイルタイププラグインは quickfix リストを生成したコマンドを
status-line に表示するための設定を含む。この設定を無効にするには、以下のよう
に設定する:
R MARKDOWN ft-rmd-plugin
デフォルトでは、ftplugin/html.vimは読み込まれない。読み込みたい場合は、以下を
あなたの vimrc に追加する:
'formatexpr' オプションは、Rコード用とMarkdownコード用の異なる値で動的に設定さ
れる。'formatexpr' が設定されていない方が良い場合は、以下をあなたの vimrc に
追加する:
R RESTRUCTURED TEXT ft-rrst-plugin
'formatexpr' オプションは、Rコード用とreStructuredText用の異なる値で動的に設定
される。'formatexpr' が設定されていない方が良い場合は、以下をあなたの vimrc
に追加する:
RESTRUCTUREDTEXT ft-rst-plugin
以下のフォーマット設定がオプションで利用可能である:
この機能を有効にするには、あなたのvimrcに次の変数を設定する:
RPM SPEC ft-spec-plugin
このプラグインに関する説明は非常に多いので、別のファイル pi_spec.txt に記述
してある。
RUST ft-rust
このプラグインに関する説明は非常に多いので、別のファイル ft_rust.txt に記述
してある。
SQL ft-sql
このプラグインについての解説は長くなるので、別のファイルに分割してある:
ft_sql.txt
TEX ft-tex-plugin g:tex_flavor
*.tex ファイルの最初の行が次のような形なら
tex (LaTeX)。そうでなければ context か tex かを決定するためにファイル内から
キーワードを検索する。もしキーワードが見つからなければ既定値として plaintex に
なる。この既定値は、変数 g:tex_flavor を定義すれば変更することができる。次のど
れかのようにする:
VIM ft-vim-plugin
Vim ファイルタイププラグインは、[[ および ]] で関数の先頭および末尾に移動する
ためのマッピングを定義する。コメントの周辺には ]" および [" で移動する。
このマッピングは以下のようにして無効化することができる:
ZIMBU ft-zimbu-plugin
Zimbu ファイルタイププラグインは、[[ および ]] で関数の先頭および末尾に移動す
るためのマッピングを定義する。
このマッピングは以下のようにして無効化することができる:
vim:tw=78:ts=8:noet:ft=help:norl:
VIMリファレンスマニュアル by Bram Moolenaar
ファイル形式 filetype file-type
1. ファイル形式 filetypes
2. ファイル形式別プラグイン filetype-plugins
3. 標準で付属する形式別プラグインの解説 ftplugin-docs
autocmd.txtも参照。
==============================================================================
1. ファイル形式 filetypes file-types
Vimは編集しているファイルの形式を検出することができる。これはファイル名をチェ
ックしたり、場合によってはファイル内に特定のテキストがあるかを調べることで実現
されている。
:filetype :filet
ファイル形式の検出を有効化するには、vimrcファイルでこのコマンドを使用する:
:filetype on
新しいファイルや既存のファイルを編集する際には必ず、Vimはファイルの形式を認識し 'filetype' オプションを設定しようと試みる。それが構文強調やオプションの設
定、その他を行うために使われるFileTypeイベントのきっかけとなる。
NOTE: Vi互換とは全てのオプションがグローバルであることを意味するので、ファイル
形式識別と 'compatible' は同時に使うことはできない。既に 'compatible'を設定し
ている場合には、それを解除する必要がある。
詳細: ":filetype on" コマンドは次のファイルのうち1つをロードする。
Amiga $VIMRUNTIME/filetype.vim
Mac $VIMRUNTIME:filetype.vim
MS-Windows $VIMRUNTIME\filetype.vim
Unix $VIMRUNTIME/filetype.vim
VMS $VIMRUNTIME/filetype.vim
このファイルはBufNewFileとBufReadイベントに対する自動実行コマンドを定
義するVim scriptファイルである。ファイル形式がファイル名から決定できな
い時には、ファイルの内容を検出するために$VIMRUNTIME/scripts.vimが使用
される。
GUIで使用しているとき、またはGUIを開始しようとしているときには、
menu.vim も読み込まれる。これを避けるには 'go-M' を参照。
独自のファイルタイプを追加するには、下のnew-filetypeを参照。あるファイルタイ
プについてのヘルプを検索するには、ファイルタイプ名の前に "ft-" をつけ、さらに
必要に応じて "-syntax", "-indent", "-plugin" をつける。例:
:help ft-vim-indent
:help ft-vim-syntax
:help ft-man-plugin
:help ft-vim-syntax
:help ft-man-plugin
ファイル形式を自動的に検出できなかった場合や、間違った形式になってしまった場合
には、'filetype' オプションを手動で設定するか、ファイルにモード行(modeline)を
追加する選択肢がある。例として、IDLファイルに設定するにはこのコマンドを使うか:
:set filetype=idl
このmodelineをファイルに追加する:
/* vim: set filetype=idl : */
:filetype-plugin-on
ファイル形式別プラグインのロードを有効化するには:
:filetype plugin on
まだファイル形式検出が有効になっていない時には、同時に有効化される。これは実際には 'runtimepath' にある "ftplugin.vim" をロードする。
結果的にファイルが編集される時に対応するプラグインファイルがロードされる(ただ
し検出したファイル形式に合致するプラグインファイルがあった時のみ)。
filetype-plugin
:filetype-plugin-off
ファイル形式別プラグインを無効化するには:
:filetype plugin off
ファイル形式の検出自体は無効にならない。しかしながらファイル形式の検出を無効にした場合には、プラグインもロードされなくなる。
これは実際には 'runtimepath' にある "ftplugof.vim" をロードする。
:filetype-indent-on
ファイル形式別インデントのロードを有効化するには:
:filetype indent on
まだファイル形式検出が有効になっていない時には、同時に有効化される。これは実際には 'runtimepath' にある "indent.vim" をロードする。
結果的にファイルが編集される時に対応するインデントファイルがロードされる(ただ
し検出したファイル形式に合致するインデントファイルがあった時のみ)。
filetype-plugin
:filetype-indent-off
ファイル形式別インデントを無効化するには:
:filetype indent off
ファイル形式の検出自体は無効にならない。しかしながらファイル形式の検出を無効にした場合には、インデントファイルもロードされなくなる。
これは実際には 'runtimepath' にある "indoff.vim" をロードする。
そうすると、これから開くファイルに対して自動インデントが無効になる。すでに開い
ているファイルに対しては何も変わらない。すでに開いているファイルに対して自動イ
ンデントを無効にするには 'autoindent', 'cindent', 'smartindent', 'indentexpr'
をオフにする。
:filetype-off
ファイル形式の検出を無効にするには、次のコマンドを使用する:
:filetype off
これはプラグイン("plugin")とインデント("indent")のフラグを保持はするが、ファイル形式は検出されなくなるので、次に ":filetype on" をするまではそれらは動作しな
くなる。
概要: :filetype-overview
コマンド 検出 プラグイン インデント
:filetype on 有効 変化なし 変化なし
:filetype off 無効 変化なし 変化なし
:filetype plugin on 有効 有効 変化なし
:filetype plugin off 変化なし 無効 変化なし
:filetype indent on 有効 変化なし 有効
:filetype indent off 変化なし 変化なし 無効
:filetype plugin indent on 有効 有効 有効
:filetype plugin indent off 変化なし 無効 無効
現在の状態を知るには次のようにタイプする:
:filetype
このような出力が得られる: filetype detection:ON plugin:ON indent:OFF
ファイル形式は構文強調にも利用される。":syntax on" コマンドが使用されると、ファ
イル形式検出もインストールされる。":syntax on" の後に ":filetype on" を実行す
る必要はない。
特定のファイル形式を無効にするには、自分のファイル形式ファイルに1行追加する。
remove-filetype参照。
filetype-detect
再びファイル検出を有効化するには:
:filetype detect
空のファイルから編集を始めて、ファイル形式を判定するのに充分なテキストをタイプしてからコレを使用する。例えば、シェルスクリプトの中で "#!/bin/csh" を入力して
からということ。
ファイル形式検出が無効になっていた時には、引数 "on" が指定された時のように、
初めに有効化される。
filetype-overrule
同じ拡張子が2つのファイル形式で使用されている時には、Vimはファイルがどのような
種類であるかを推測する。これは常に動作するわけではない。ある拡張子に対してどの
ファイル形式を使うか明示的に指定するのに、幾つかのグローバル変数を使うことがで
きる:
ファイル名 変数
*.asa g:filetype_asa ft-aspvbs-syntax ft-aspperl-syntax
*.asm g:asmsyntax ft-asm-syntax
*.asp g:filetype_asp ft-aspvbs-syntax ft-aspperl-syntax
*.fs g:filetype_fs ft-forth-syntax
*.i g:filetype_i ft-progress-syntax
*.inc g:filetype_inc
*.m g:filetype_m ft-mathematica-syntax
*.p g:filetype_p ft-pascal-syntax
*.pl g:filetype_pl
*.pp g:filetype_pp ft-pascal-syntax
*.prg g:filetype_prg
*.sh g:bash_is_sh ft-sh-syntax
*.tex g:tex_flavor ft-tex-plugin
*.w g:filetype_w ft-cweb-syntax
filetype-ignore
特定のファイルが検査されないようにするには、g:ft_ignore_pat 変数を使う。この変
数はデフォルトで次のように設定されている。
:let g:ft_ignroe_pat = '\.\(Z\|gz\|bz2\|zip\|tgz\)$'
この設定は圧縮ファイルを検査しないようにしている。new-filetype
使いたいファイル形式がVimに検出されない(存在しない)場合には、その形式を追加す
る4つの方法がある。どちらにせよファイル$VIMRUNTIME/filetype.vimは変更するべき
ではない。そのファイルは新しいVimをインストールする際に上書されるのだから。
A. デフォルトのファイルタイプの検査をくつがえす。
この方法はファイルタイプごとにファイルを作ることで機能する。不便な点は
ファイルがたくさんになってしまうこと。便利な点は適切なディレクトリにファ
イルを置くだけで機能すること。
ftdetect
1. ユーザーランタイムディレクトリを作成する。通常は 'runtimepath' オプション
に記載される最初の項目を使えば良い。次にそのディレクトリに "ftdetect" と
いうディレクトリを作成する。UNIXを例に挙げる:
:!mkdir ~/.vim
:!mkdir ~/.vim/ftdetect
:!mkdir ~/.vim/ftdetect
2. ファイル形式を検出する自動実行コマンドを含むファイルを作成する。
例:
au BufRead,BufNewFile *.mine set filetype=mine
Note "augroup" コマンドは要らない。そのファイルを読み込むときに既に定義されている。パターンに "*" を使いファイルの内容から判断することもで
きる。
そのファイルを例えば "mine.vim" という名前で先程の "ftdetect" ディレク
トリに保存する。UNIXを例に挙げる:
:w ~/.vim/ftdetect/mine.vim
3. 新しいファイル形式の検出を有効化するにはVimを再起動しなければならない。
"ftdetect" ディレクトリの中のファイルはデフォルトの検査のあとに使われるの
で、それ以前に決定したファイルタイプを変更することができる。しかしここで
:setfiletypeを使えば、それ以前に決定したファイルタイプをそのままにしてお
くこともできる。
B. デフォルトのファイルタイプの検査の後にファイルタイプを決定する。
上と同様。ただし、無条件に 'filetype' を設定する代わりに、':setfiletype' を
使う。これはファイルタイプがまだ認識されていないときだけ 'filetype' を設定
する。次に例を示す。
au BufRead,BufNewFile *.txt setfiletype text
すでに認識されたファイルタイプをコマンドから使うことができる。例えば、ファ
イルタイプが "pascal" だった時にファイルタイプを "mypascal" に設定するには:
au BufRead,BufNewFile * if &ft == 'pascal' | set ft=mypascal
| endif
| endif
C. ファイル形式が名前だけで検出できる場合。
1. ユーザーランタイムディレクトリを作成する。通常は 'runtimepath' オプション
に記載される最初の項目を使えば良い。UNIXを例に挙げる:
:!mkdir ~/.vim
2. ファイル形式を検出する自動実行コマンドを含むファイルを作成する。
例:
" 独自の filetype ファイル
if exists("did_load_filetypes")
finish
endif
augroup filetypedetect
au! BufRead,BufNewFile *.mine setfiletype mine
au! BufRead,BufNewFile *.xyz setfiletype drawing
augroup END
このファイルを "filetype.vim" としてユーザーランタイムディレクトリに保存if exists("did_load_filetypes")
finish
endif
augroup filetypedetect
au! BufRead,BufNewFile *.mine setfiletype mine
au! BufRead,BufNewFile *.xyz setfiletype drawing
augroup END
する。UNIXを例にあげる:
:w ~/.vim/filetype.vim
3. 新しいファイル形式の検出を有効化するためにVimを再起動する。
作成したfiletype.vimはデフォルトのFileType自動実行コマンドがインストールさ
れる前に読み込まれる。そのため新しく作成した自動実行コマンドが先に適合し、
":setfiletype" コマンドがこれ以後に他の自動実行コマンドにより 'filetype' が
設定されないことを保証する。
new-filetype-scripts
D. ファイル形式がファイルの内容を調べる事によってのみ検出可能な場合。
1. ユーザーランタイムディレクトリを作成する。通常は 'runtimepath' オプション
に記載される最初の項目を使えば良い。UNIXを例に挙げる:
:!mkdir ~/.vim
2. ファイルの内容で形式を決定する Vim script を作成する。例:
if did_filetype() " 既にファイル形式が決定している
finish " ..その時はこのチェックは行わない
endif
if getline(1) =~ '^#!.*\<mine\>'
setfiletype mine
elseif getline(1) =~? '\<drawing\>'
setfiletype drawing
endif
より多くの例については$VIMRUNTIME/scripts.vimを参照。finish " ..その時はこのチェックは行わない
endif
if getline(1) =~ '^#!.*\<mine\>'
setfiletype mine
elseif getline(1) =~? '\<drawing\>'
setfiletype drawing
endif
このファイルを "scripts.vim" としてユーザーランタイムディレクトリに保存
する。UNIXを例に挙げる:
:w ~/.vim/scripts.vim
3. これだけで検出は正しく動作し、Vimを再起動する必要は無い。
新しく作成したscripts.vimはデフォルトのファイル形式チェックの前に読み込まれ
るので、$VIMRUNTIME/scripts.vimに書かれたデフォルトの判定規則を上書きするこ
とができる。
remove-filetype
ファイル形式が誤って検出されたならば、(上を参考に)それを補正するfiletype.vimか
scripts.vimをインストールする。'filetype' に存在しない形式の名前を設定すれば、
それ以降の検出スクリプトで別の値が設定されてしまうのを避けることができる:
:set filetype=ignored
複数人で使用する環境を設定していて、個々のユーザーにはファイル形式を追加/削除
させたくないならば、ランタイムディレクトリに置いて全ユーザーが共有するように
filetype.vimとscripts.vimを書く必要がある。そのスクリプトを置くディレクトリに
は 'runtimepath' の示すうちのどれか1つを選択する。'runtimepath' の中に設定を置
きたいディレクトリが見あたらなければ、system-vimrc内で正しく追加する必要があ
る。既に設定されているデフォルトのディレクトリを変更しないように注意。
autocmd-osfiletypes
NOTE: RISC OS サポートが削除されたため、このコードは現在無効化されている。将来
これは 'filetype' オプションを使用することになるだろう。
ファイルと共に「形式」を記録できるオペレーティングシステム(OS)では、ファイルが
ある「形式」だった時にだけ実行される自動コマンドを設定することができる。
実際の「形式」チェックはVimをどのプラットフォームで使用しているかに依存する;
詳細は使用しているシステムの解説書を参照のこと。
OSによる「形式」を利用するには自動実行コマンドの検出パターンの場所に、次の例に
示すように折カッコで囲んだ検出させたい「形式」のリストを書く:
:au BufRead *.html,<&faf;HTML> runtime! syntax/html.vim
これは以下に適合する:
- ファイル名が ".html" で終了するあらゆるファイル
- 「形式」が "&faf" か "HTML" である全てのファイル。ただしここでいう「形式」と
はVimのバージョン(稼動しているOS)によって定義される。未知の形式は適合しない
とみなされる。
「形式」とパターンを同時に指定することもできる (そのような場合には、両方共マッ
チする必要がある):
:au BufRead <&fff>diff*
これは「形式」が "&fff" で名前が "diff" で始まるファイルに適合する。
plugin-details
"plugin" ディレクトリは 'runtimepath' オプションに示されているならば、どのディ
レクトリに置いても良い。そこに示された全てのディレクトリにあるプラグインが検索
され読み込まれる。例えば、次のコマンドを実行すると:
set runtimepath
次の内容が出力される:
runtimepath=/etc/vim,~/.vim,/usr/local/share/vim/vim82
この時Vimは以下に示すディレクトリとそれ以下にある全てのプラグインを読み込む:
/etc/vim/plugin/
~/.vim/plugin/
/usr/local/share/vim/vim82/plugin/
最後の1つは$VIMRUNTIMEが展開されたものであることに注意。
Note: プラグインマネージャーや packages を使っている場合、たくさんのディレク
トリが 'runtimepath' に追加される。これらのプラグインはそれぞれに自分用のディ
レクトリが必要であり、~/.vim/plugin に直接置いてはいけない。
プラグインが読み込まれていないらしい場合はどうすれば良いのか? Vim起動時に-V
引数を使用すれば何が起こっているか知ることができる:
vim -V2
多くのメッセージが表示されるが、プラグインの読み込みの前には特定の記述がなされ
る。それは次のように始まる:
Searching for "plugin/**/*.vim" in
これを見ればVimがプラグインスクリプトをどこから探しているのかがわかる。
==============================================================================
2. ファイル形式別プラグイン filetype-plugins
ファイル形式プラグインが有効になっていれば:filetype-plugin-on、プラグイン読
込時にオプションが設定されキーマップが定義される。それらは全てバッファローカル
で、他のファイルに対しては決して作用しない。
ファイル形式により定義されるキーマップが自分で定義したキーマップの邪魔になるこ
ともあり得る。幾つかこれを回避する方法がある:
1. "maplocalleader" にキーマップの先頭に使用するキーシーケンスを設定する。例:
:let maplocalleader = ","
デフォルトのバックスラッシュ(\ 記号)に替えてコンマが全てのマップの始まりのキーになる。<LocalLeader>も参照。
2. 独自のマップを定義する。例:
:map ,p <Plug>MailQuote
どのような機能が提供され、それにどのような文字列がキーマップされているのか、プラグインファイルの説明をチェックする必要がある。
独自のキーマップはプラグインが読み込まれる (つまりその形式のファイルが読み
込まれる) 前に定義する必要がある。そうすればプラグインはデフォルトキーマッ
ピングのインストールを行わない。
no_mail_maps
3. 特定のファイル形式についてキーマップを無効化するならば、そのファイル形式名
を含むある変数を設定する。ファイル形式 "mail" のキーマップを無効にするには
次のようにする:
:let no_mail_maps = 1
no_plugin_maps4. ファイル形式による全てのキーマップを無効化するには次の変数を設定する:
:let no_plugin_maps = 1
ftplugin-overrule
グローバルな($VIMRUNTIMEにある、システムが提供する)ファイル形式プラグインが
キッチリ望むように動作しない場合には、これを変更する方法が3通りある:
1. 設定を追加する。
新しいファイル形式プラグインを作り、'runtimepath' の始めのほうに置く。一例
として、UNIXではこのファイルを利用できる:
vim ~/.vim/ftplugin/fortran.vim
追加したい設定やキーマップをこのファイルに記述する。グローバルプラグインはこれの後に読み込まれるので、ここで行った設定は上書される可能性がある。その
ような場合には以下の2つの方法のどちらかを利用する。
2. プラグインのコピーを作成し、そちらを変更する。
'runtimepath' の始めのほうにそのプラグインのコピーを置く。一例として、UNIX
ではこのように行う:
cp $VIMRUNTIME/ftplugin/fortran.vim ~/.vim/ftplugin/fortran.vim
そうすればコピーしたファイルを好きなように変更できる。これは変数b:did_ftpluginが設定されていれば、グローバルプラグインは読み込まれない仕組
みになっていることによる。
この方法には、配布されるプラグインが改良された際に、再びコピーし同じように
変更しなければならない、という短所がある。
3. グローバルプラグインの読み込み後に設定を上書きする。
'runtimepath' の最後に、新しいファイル形式プラグインを作成する。一例として、
UNIXではこのファイルを利用できる:
vim ~/.vim/after/ftplugin/fortran.vim
このファイルの中では、変更したい設定だけを変更できる。==============================================================================
3. 標準で付属する形式別プラグインの解説 ftplugin-docs
AWK ft-awk-plugin
@include のような、GNU Awk 固有の機能のサポートは、以下の設定で有効にできる:
let g:awk_is_gawk = 1
チェンジログ(CHANGELOG) ft-changelog-plugin
{訳注: エントリ=日付ごとの区切り アイテム=日付内の項目}
チェンジログファイルを簡単に扱うことを可能にする。いくつかの便利なコマンドや
マッピング、変数がある。
オプション:
'comments' フォーマットを崩さないように空に設定される。
'textwidth' 標準的な値である78に設定される。
'formatoptions' テキストを折り返すために 't' が加えられる。
コマンド:
NewChangelogEntry 適切にアイテムを追加する(以下参照)。
ローカルマッピング:
<Leader>o 上と同様に適切にアイテムを追加する(以下参照)。
グローバルマッピング:
NOTE: グローバルマッピングはあらかじめ
ftplugin/changelog.vim を実行することで有効になる。
例えば
runtime ftplugin/changelog.vim
と .vimrc に書くようにして。{訳注: この例だと間違えてこのまま書いちゃいそう。}
<Leader>o カレントディレクトリに "ChangeLog" というファイルがあ
れば開き、既に開かれていればバッファを切替える。そして
上記のローカルマッピング<Leader>oと同じように働く。
変数:
g:changelog_timeformat 非推奨。g:changelog_dateformatを使うこと。
g:changelog_dateformat エントリに入れる日付(と時間)の書式。
使えるフォーマットは strftime() と同じ。
デフォルトでは標準的に使われている "%Y-%m-%d" が設定
されている。
g:changelog_username ユーザーの名前とメールアドレス。
デフォルトは環境変数とシステムファイルから推定され
る。まずカレントユーザーについての情報を得るために
/etc/passwd を探す。そこの最初の区切りにユーザーの実
名があることを期待している。次に環境変数の$NAMEを
チェックする。最後にアドレスを得るためにwhoamiと
hostnameを実行する。最終的に次のような値を決定す
る。
Full Name <user@host>
g:changelog_new_date_format
エントリを作成するときの書式。
次の特別な文字が使える:
%% 一つの '%' が入る
%d 上記で定義した日付
%u 上記で定義したユーザーの名前
%p b:changelog_entry_prefix の結果
%c 作成後のカーソルの位置
デフォルトは "%d %u\n\n\t* %p%c\n\n"。これは次のよう
になる ( | はカーソルの位置を示している。しかし、行頭
の | は行の始まりを表す)
|2003-01-14 Full Name <user@host>
|
| * prefix|
|
| * prefix|
g:changelog_new_entry_format
アイテムを作成するときの書式。
次の特別な文字が使える:
%p b:changelog_entry_prefix の結果
%c 作成後のカーソルの位置
デフォルトは "\t*\c"。これは次のようになる
| * prefix|
g:changelog_date_entry_search
日付エントリを探すための検索パターン。
g:changelog_new_date_formatと同じ特別な文字が使え
る。デフォルトは '^/\s*%d\_s*%u' で、次のような行
|2003-01-14 Full Name <user@host>
を見つける。g:changelog_date_end_entry_search
日付エントリの終端を探すための検索パターン。
g:changelog_new_date_formatにおけるトークンと同じもの
が使用できる。デフォルトは '^\s*$' で、空白文字のみを
含む行または完全な空行を検索する。
b:changelog_name b:changelog_name
チェンジログファイルの名前。
既定値は 'ChangeLog'。
b:changelog_path
カレントバッファに使うチェンジログのパス。
既定では空文字列で、カレントバッファと同じディレクトリ
から b:changelog_name という名前のファイルが検索され
る。それが見つからない場合は、カレントバッファの親
ディレクトリを検索する。ファイルが見つかるか、それ以上
上がれなくなるまで、再帰的にこれが繰り返される。
b:changelog_entry_prefix
新しいエントリのプリフィックスを生成するための関数の名
前を指定する。関数は引数を取らず、プリフィックスの文字
列を返す。関数は空文字を返しても構わない。
デフォルトでは ChangeLog のパスとカレントバッファのパ
スの間の最短パスが使用される。
将来的には他の変数コンテキスト (例えば g:) でも指定で
きるようになる予定である。
チェンジログエントリは適切な位置に挿入される。現在の日付とユーザーを得た後
に、その日付とユーザーのエントリをファイルから探し、見つかればその下にアイテ
ムを加える。なければ新しいエントリとアイテムをファイルの先頭に加える。
フォートラン(FORTRAN) ft-fortran-plugin
オプション:
'expandtab' .vimrcでfortran_have_tabsが指定されなければ、フォートラン標準
に従ってタブ文字を避けるために有効にする。
'textwidth' フォートラン標準に従って固定形式のソースでは72に、自由形式の
ソースでは80に設定される。
'formatoptions' コードとコメントを分けて、長い行を保持するように設定される。
これによりgqでコメントを整形できる。
fortran_have_tabsについての議論とソース形式の判定法については
ft-fortran-syntaxを参照。
GIT COMMIT ft-gitcommit-plugin
現在のコミットの差分をプレビューウィンドウに表示する :DiffGitCached というコマ
ンドが提供されている。このコマンドを実行すると、その引数をつけて "git diff
--cached" が実行される。
GPROF ft-gprof-plugin
gprof ファイルタイププラグインは gprof のフラットプロファイルもしくはコールグ
ラフの関数エントリからコールグラフの関数の詳細へジャンプする <C-]> マッピング
を定義する。
このマッピングを無効にするには:
let g:no_gprof_maps = 1
メール(MAIL) ft-mail-plugin
オプション:
'modeline' トロイの木馬の危険を避けるのと、「件名」に含まれる "Vim:" がエ
ラーメッセージの原因となる可能性を排除するために、モード行はオ
フになる。
'textwidth' 72に設定する。e-mailでは良く推奨される値。
'formatoptions' テキストを折返し、新しい行ではコメントリーダーを繰り返すように
設定。引用記号の ">" が繰り返される。
これによりgqで引用文を整形できる。
ローカルキーマップ:
<LocalLeader>q or \\MailQuote
ビジュアルモードでは選択されたテキストを、ノーマルモードではカーソルの
位置からファイル末端までのテキストを引用する。これは全ての行に "> " が
挿入されることを意味している。
MAN ft-man-plugin :Man man.vim
このプラグインはマニュアルページを洗練された方法で表示する。ユーザーマニュアル
の詳細な情報は find-manpage も参照のこと。
マニュアルページが読み込まれる前に :Man を利用するには、起動 vimrc ファイ
ルでこのスクリプトを読み込む必要がある:
runtime ftplugin/man.vim
オプション:
'iskeyword' マニュアルページの名前の上で CTRL-] の利用をサポートするように
するために文字 '.' が追加される。
コマンド:
Man {name} {name} についてのマニュアルページを表示する。
Man {number} {name}
{number} セクションの {name} についてのマニュアルページを表示
する。
グローバルキーマップ:
<Leader>K カーソル下の単語についてのマニュアルページを表示する。
<Plug>ManPreGetPage
同上、マッピングを使うことを可能にする:
nmap <F1> <Plug>ManPreGetPage
ローカルキーマップ:
CTRL-] カーソルの下の単語についてのマニュアルページへ移動する。
CTRL-T 直前のマニュアルページへ戻る。
q :quit コマンドと同じ。
水平の代わりに垂直分割を使用するには:
let g:ft_man_open_mode = 'vert'
新しいタブを使うには: let g:ft_man_open_mode = 'tab'
折り畳み folding を有効にするにはこの変数を使う:
let g:ft_man_folding_enable = 1
もしデフォルトの折り畳みが好みではないのなら、代わりに autocommand を使って望んだ折り畳みスタイルを追加できる。例:
autocmd FileType man setlocal foldmethod=indent foldenable
:Man {number} {name} が man {number} {name} のように振る舞い、ページが見つから
ない場合に man {name} を実行させたくなければ、これを使用する:
let g:ft_man_no_sect_fallback = 1
'keywordprg' を設定して、K コマンドを Vim ウィンドウのマニュアルページにもで
きる:
set keywordprg=:Man
MANPAGER manpager.vim
:Man コマンドを使うと、Vim をマンページにできる(その構文はマンページをハイラ
イト表示し、CTRL-] でヒットしたリンク先のマンページをたどる)。
bash, zsh, ksh もしくは dash の場合、設定ファイル (.bashrc, .zshrc, ...) に以
下の設定を追加する。
export MANPAGER="vim -M +MANPAGER -"
(t)csh の場合、設定ファイルに以下の設定を追加する。
setenv MANPAGER "vim -M +MANPAGER -"
fish の場合、設定ファイルに以下の設定を追加する。
set -x MANPAGER "vim -M +MANPAGER -"
MARKDOWN ft-markdown-plugin
折り畳みを有効にするには、次のようにする:
let g:markdown_folding = 1
PDF ft-pdf-plugin
PDF ファイル内をジャンプするため、タグスタックをシミュレートする <C-]> と<C-T>
という2つのマップが提供されている。次のものがタグとして扱われる:
- "startxref" の後から xref テーブルまでのバイトオフセット
- トレイラー内の /Prev キーから前の xref テーブルへのバイトオフセット
- xref テーブル内の "0123456789 00000 n" という形式の行
- PDF 内の任意の位置における "1 0 R" のようなオブジェクト参照
これらのマップは次のコマンドで無効化できる
:let g:no_pdf_maps = 1
PYTHON ft-python-plugin PEP8
デフォルトでは、PEP8 に従って以下のオプションが設定されている:
setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
この動作を無効にするには、あなたのvimrcに次の変数を設定する:
let g:python_recommended_style = 0
QF QUICKFIX qf.vim ft-qf-plugin
"qf" ファイルタイプは quickfix ウィンドウに使用される。quickfix-window を参
照。
quickfix ファイルタイププラグインは quickfix リストを生成したコマンドを
status-line に表示するための設定を含む。この設定を無効にするには、以下のよう
に設定する:
:let g:qf_disable_statusline = 1
R MARKDOWN ft-rmd-plugin
デフォルトでは、ftplugin/html.vimは読み込まれない。読み込みたい場合は、以下を
あなたの vimrc に追加する:
let rmd_include_html = 1
'formatexpr' オプションは、Rコード用とMarkdownコード用の異なる値で動的に設定さ
れる。'formatexpr' が設定されていない方が良い場合は、以下をあなたの vimrc に
追加する:
let rmd_dynamic_comments = 0
R RESTRUCTURED TEXT ft-rrst-plugin
'formatexpr' オプションは、Rコード用とreStructuredText用の異なる値で動的に設定
される。'formatexpr' が設定されていない方が良い場合は、以下をあなたの vimrc
に追加する:
let rrst_dynamic_comments = 0
RESTRUCTUREDTEXT ft-rst-plugin
以下のフォーマット設定がオプションで利用可能である:
setlocal expandtab shiftwidth=3 softtabstop=3 tabstop=8
この機能を有効にするには、あなたのvimrcに次の変数を設定する:
let g:rst_style = 1
RPM SPEC ft-spec-plugin
このプラグインに関する説明は非常に多いので、別のファイル pi_spec.txt に記述
してある。
RUST ft-rust
このプラグインに関する説明は非常に多いので、別のファイル ft_rust.txt に記述
してある。
SQL ft-sql
このプラグインについての解説は長くなるので、別のファイルに分割してある:
ft_sql.txt
TEX ft-tex-plugin g:tex_flavor
*.tex ファイルの最初の行が次のような形なら
%&<format>
ファイルタイプは次のどれかになる: plaintex (プレーン TeX), context (ConTeXt),tex (LaTeX)。そうでなければ context か tex かを決定するためにファイル内から
キーワードを検索する。もしキーワードが見つからなければ既定値として plaintex に
なる。この既定値は、変数 g:tex_flavor を定義すれば変更することができる。次のど
れかのようにする:
let g:tex_flavor = "plain"
let g:tex_flavor = "context"
let g:tex_flavor = "latex"
現在のところこれ以外のフォーマットは識別されない。let g:tex_flavor = "context"
let g:tex_flavor = "latex"
VIM ft-vim-plugin
Vim ファイルタイププラグインは、[[ および ]] で関数の先頭および末尾に移動する
ためのマッピングを定義する。コメントの周辺には ]" および [" で移動する。
このマッピングは以下のようにして無効化することができる:
let g:no_vim_maps = 1
ZIMBU ft-zimbu-plugin
Zimbu ファイルタイププラグインは、[[ および ]] で関数の先頭および末尾に移動す
るためのマッピングを定義する。
このマッピングは以下のようにして無効化することができる:
let g:no_zimbu_maps = 1
vim:tw=78:ts=8:noet:ft=help:norl: