*ft_context.txt*	For Vim バージョン 9.2.  Last change: 2026 Feb 14

これは ConTeXt ファイルタイププラグインのドキュメントである。

NOTE: このプラグインは |+vim9script| が必要である。

==============================================================================
☆内容						*context.vim* *ft-context*

1. 前書き				|ft-context-intro|
2. コマンド				|ft-context-commands|
3. 設定					|ft-context-settings|
4. マッピング				|ft-context-mappings|

==============================================================================
							*ft-context-intro*
前書き ~

ConTeXt は、LaTeX と同じで、TeX 上に構築されたマクロベースの組版システムである:
>
	https://wiki.contextgarden.net
	https://wiki.contextgarden.net/Input_and_compilation/Text_editors/Vim
<
ConTeXt プラグインは構文ハイライト、組版した ConTeXt 文章の補完とサポートを提
供する。文章を組版するための推奨される方法は、$PATH にある `mtxrun` スクリプト
を呼び出す |:ConTeXt| を使用することである。

コマンドとその環境でよりきめ細かな制御をするには、`context.Typeset()` を直接使
うことができる (または旧来の Vim script からは `context#Typeset()`)。例えば、
`~/context` 内にインストールされているバージョンの ConTeXt の場合、以下のよう
にそれを使用する関数を定義できる:
>
	import autoload 'context.vim'

	var os = "linux"    # システムに合わせて更新
	var arch = "arm64"  # システムに合わせて更新

	def MyConTeXt()
	  var env = {
	    'PATH': $'{$HOME}/context/tex/texmf-{os}-{arch}/bin:{$PATH}'
	  }
	  context.Typeset("%", env)
	enddef

	nnoremap <silent><buffer><leader>t <scriptcmd>MyConTeXt()<cr>
<
このコードは `~/.vim/after/ftplugin/context.vim` に配置する必要がある。

`context.Typeset()` は、カスタムの組版コマンドを指定するための 3 番目のオプショ
ナルな引数を受け入れる。これは、パスを受け取り、コマンドを |list| として返す関数
でなければならない。例えば:
>
	def ConTeXtCustomCommand(path: string): list<string>
	  return ['mtxrun', '--script', 'context', '--nonstopmode', path]
	enddef

	def MyContext()
	    context.Typeset("%", v:none, ConTeXtCustomCommand)
	enddef
<
大規模なプロジェクトでは、ルートドキュメントと様々な章ファイルで構成されること
がよくある。章ファイルを編集する場合、ルートファイルに切り替えることなく、章
ファイル上で直接 |:ConTeXt| を呼び出すと便利である。各章ファイルの先頭には、
ルートファイルへの相対パスを指定する "マジック行" を追加することができる。例え
ば:
>
	% !TEX root = ../MyRoot.tex
<
Vim は、カレントバッファの最初の 10 行内にマジック行を検索する: 見付かった場合
はカレントバッファの文書ではなく、その行で指定された文書が組版される。ルート文
書が Vim で開かれている必要はない。

補完と構文ハイライトを拡張するには、ConTeXt を使用して補助ファイル群を生成して
設定に追加する。設定が `~/.vim` にある場合は、これらのコマンドが使用できる:
>
	mkdir -p ~/.vim/syntax/shared
	cd ~/.vim/syntax/shared
	mtxrun --script interface --vim
<
最後のコマンドは以下の構文ファイルを生成する:

- `context-data-context.vim`;
- `context-data-interfaces.vim`;
- `context-data-metafun.vim`;
- `context-data-tex.vim`.

存在する場合、そのようなファイルは構文のハイライトを強化するために自動的に読み
込まれる。同じコマンドを使用して、これらの構文ファイルを更新できる。

							*ft-context-commands*
コマンド ~
					*:ConTeXt*
カレントバッファの文書を組版するバックグラウンド |job| を開始する。このコマン
ドは別バッファの文書を組版したい場合、オプションとしてバッファ名を受け入れる。

					*:ConTeXtLog*
カレントバッファの文章ソースに対応するログファイルを編集する。

					*:ConTeXtJobsStatus*
現在バックグラウンドで動作しているジョブ数を表示する。

					*:ConTeXtStopJobs*
現在バックグラウンドで動作している ConTeXt ジョブをすべて停止する。

							*ft-context-settings*
設定 ~
					*'b:context_ignore_makefile'*
					*'g:context_ignore_makefile'*
|:make| で(同期的な)文章の組版が行える。Makefile が存在し、このオプションが未
設定の場合、通常の `make` が使用される。このオプションが設定されている場合は、
Makefile が存在していても、代わりに `mtxrun` が呼び出される。
>
	g:context_ignore_makefile = 0
<
NOTE: |:make| を使用する前に、バッファの作業ディレクトリがタイプセットしたい
ファイルのディレクトリに設定されていることを確認すること。また、|:make| は
$PATH 内で `mtxrun` を検索することに注意。

					*'g:context_extra_options'*
`mtxrun` に渡す追加のオプションのリスト。
>
	g:context_extra_options = []
<
					*'b:context_include'*
					*'g:context_include'*
\startGROUP と \stopGROUP の間で有効になる構文ハイライトのファイルタイプ/GROUP
のペアの辞書。デフォルトでは `\startXML` と `\stopXML` の間がXMLでハイライトさ
れる。
>
	g:context_include = {'xml': 'XML'}

NOTE: Lua と MetaPost は個別のブロック内では常にハイライトされる。

					*'g:no_context_maps'*
設定時、マッピングは定義されない。
>
	g:no_context_maps = 0
<
							*ft-context-mappings*
マッピング ~

tp			"reflow TeX paragraph"、TeX での段落を整形する。(モー
			ション)

i$			"inside inline math block"、インラインの数式ブロック内
			部を選択する。(テキストオブジェクトの選択)

a$			"around inline math block"、インラインの数式ブロックを
			選択する。(テキストオブジェクトの選択)

]]			[count] セクションの開始に進む。

[[			[count] セクションの開始に戻る。

][			[count] セクションの終了に進む。

[]			[count] セクションの終了に戻る。

]}			[count] ブロックの終了 (\stop..., \setup...,
			\define...) に進む。

[{			[count] ブロックの開始 (\start..., \setup...,
			\define...) に戻る。

 vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
