usr_06.txt For Vim バージョン 8.2. Last change: 2021 Nov 07
VIM USER MANUAL - by Bram Moolenaar
構文強調表示
白黒だけのテキストは退屈です。カラー表示すればファイルも生き生き見えてきます。
これは単に見た目が良いだけではなく、作業のスピードアップにもつながります。意味
のある文字列は違う色で表示しましょう。そして、画面と同じ色で印刷しましょう。
06.1 構文強調表示を有効にする
06.2 色が付かない?変な色になる?
06.3 色を変える
06.4 カラーを使う?使わない?
06.5 カラー印刷
06.6 詳しい情報
次章: usr_07.txt 複数のファイルを開く
前章: usr_05.txt 設定の変更
目次: usr_toc.txt
==============================================================================
06.1 構文強調表示を有効にする
次の簡単なコマンドで全てが始まります。
これで、カラー表示になるはずです。ファイルタイプが自動的に特定され、適切な構文
強調がロードされます。すると、コメントは青、キーワードは茶色、文字列は赤、と
いった具合にカラー表示になります。ファイルが見やすくなりましたね。しばらくする
と、白黒のテキストがあなたの足を引っ張っていたことに気づくでしょう。
常に構文強調表示を使いたい場合は、":syntax enable" コマンドをvimrcファイルに
追加してください。
カラー端末のときだけ使いたい場合は、次のコマンドをvimrcファイルに追加してく
ださい。
GUI バージョンのときだけ使いたい場合は、":syntax enable" を gvimrc ファイル
に追加してください。
==============================================================================
06.2 色が付かない?変な色になる?
カラー表示がうまくいかない理由はいろいろあります:
- カラー端末じゃない。
Vim は、太字やイタリック、下線も使えます。でもそれだけではあまりカッコ
良くはできません。カラー対応の端末を入手するのがいいでしょう。
Unixなら、XFree86プロジェクト(xfree-xterm)のxtermがお勧めです。
- カラー端末であることを Vim が認識できない。
$TERM の設定が正しいかどうかを確認してください。例えば、カラー対応の
xterm なら次のように設定します:
シェルによってはこうかもしれません:
端末名と実際に使っている端末名は同じでないといけません。それでも
うまく動かない場合は、xterm-colorを参照してください。この文書には
Vim をカラー表示にする方法がいくつか書いてあります。(xtermに限った文書
ではありません)
- ファイルタイプが識別できなかった。
いくら Vim でも古今東西のファイルタイプをすべて知っているわけではあり
ません。ファイルがどの言語で書かれているかを特定するのが困難な場合もあ
ります。このコマンドを使ってみてください。
この結果が "filetype=" ならば、ファイルタイプが認識できなかったという
ことです。手動でファイルタイプを指定することもできます。
どんなタイプが使えるかは、$VIMRUNTIME/syntax のディレクトリを見て
ください。GUI なら、[シンタックス]メニューも使えます。
ファイルタイプの設定はモード行(modeline)でもできます。モード行で指定
すれば、そのファイルを開いたときにカラー表示が必ず設定されます。例え
ば、Makefile なら次のように書きます。(ファイルの最初か最後に近い場所に
書いてください):
あなたはファイルタイプの判定方法を知っているかもしれませんね。ほとんど
のファイルは拡張子を見ればファイルタイプがわかります。
ファイルタイプを検出して設定する方法についてはnew-filetypeを参照して
ください。
- ファイルタイプ用の構文定義がない。
似ているファイルタイプを手動で設定して使ってみてください。それでも不満
な場合は、自分で構文定義ファイルを書くこともできます。詳しくは
mysyntaxfileを参照してください。
色がおかしい場合:
- 色付きの文字が非常に読みづらい
Vim は使われている背景色を推測します。黒 (もしくは同様の暗色) なら、明
るい色で文字を表示します。白 (もしくは同様の明るい色) なら、暗い色で文
字を表示します。Vim の予想がはずれると、文字は読みづらくなります。
これは 'background' オプションを設定することで解決できます。暗い背景色
を使っている場合は、次のように設定してください:
明るい背景色なら次のように設定してください:
このコマンドは ":syntax enable" より *前* に実行してください。色が設
定された後では意味がありません。後から 'background' を設定した場合は、
":syntax reset" を実行すると、標準色に戻すことができます。
- 上に向ってスクロールしたときに色が間違っている
構文解析は、ファイル全体を読んでるわけではありません。画面に表示されて
いるところから、解析は始まります。これだと時間を大幅に節約できるのです
が、時には色を間違ってしまいます。直すには単に CTRL-L を押してくださ
い。あるいは、少し多めに上スクロールしてから戻ると直ります。
根本的に解決するには、:syn-syncを参照してください。一部の構文ファイ
ルは、ずっと上の方まで戻って解析をしています。詳しくは個々の構文定義
ファイルのヘルプを参照してください。例えば、TeX 用の定義ファイル
tex.vimがそれを行っています。
==============================================================================
06.3 色を変える :syn-default-override
標準色が好みでなければ、他の色テーマを使うことができます。GUI ならメニューの
[編集]-[色テーマ] が使えます。コマンドで指定することもできます:
"evening" というのは色テーマの名前です。色テーマは他にもたくさんあります。ディ
レクトリ $VIMRUNTIME/colors をご覧ください。
好みの色テーマを見つけたら、":colorscheme" コマンドをvimrcファイルに追加して
ください。
自分で色テーマを作ることもできます。その手順は次の通りです。
1. 作りたいテーマに近い色テーマを選び、それを自分の Vim ディレクトリにコピーし
ます。Unix なら次のとおりです:
$VIMRUNTIME は Vim が設定する環境変数なので、このコマンドは Vim から実行し
てください。
2. 色テーマファイルを編集します。この一覧が役に立つでしょう:
term 白黒端末での属性
cterm カラー端末での属性
ctermfg カラー端末での文字色
ctermbg カラー端末での背景色
gui GUI での属性
guifg GUI での文字色
guibg GUI での背景色
例えば、コメントを緑にするにはこのようにします。
"cterm" と "gui" の属性には、"bold" と "underline" が指定できます。両方を指
定したい場合は、"bold,underline" のように指定します。詳しくは:highlightを
参照してください。
3. 作った色テーマが使われるように設定します。この行をvimrcに追加してくださ
い:
次のコマンドで、よく使われる色の組み合わせを表示して、見栄えを確認できます:
いろんな色の組み合せが表示されます。どれが読みやすくて見た目が良いかチェックし
てください。ただし使用できるのはこれらの色だけではありません。
#rrggbb の16進数カラーを指定することもできますし、v:colornames で16進数カラー
の新しい名前を以下のように定義することも可能です:
他から利用できるカラースキームを作る場合は、既存の定義がないものにすることが重
要です:
これによって、カラースキームのユーザーはあなたのカラースキームをロードする前に
正確に定義を上書き定義できます、例えば、.vimrc ファイルにて:
runtime colors/lists/css_colors.vim
let v:colornames['your_red'] = v:colornames['css_red']
colorscheme yourscheme
カラースキームの作者であれば、一部のカラー名はGUIカラーに頼ることができます。
これらは colors/lists/default.vim に定義されています。'runtimepath' 上に発
見されるこの形式のファイルは colorscheme コマンドが実行されるたびにロードされ
ます。Vim の配布物として提供される正規のリストにはすべての X11 カラーが含まれ
ています(以前は rgb.txtで定義されていました)。
==============================================================================
06.4 カラーを使う?使わない?
テキストをカラーで表示するには、たくさんの計算が必要です。表示が遅すぎると感じ
たときは、構文強調表示を一時的に止めてみてください:
他のファイル (又は同じファイル) を開くと、再びカラー表示されます。
構文強調表示を完全に無効にするには、このようにします:
これで、構文強調表示が無効になり、すべてのバッファが白黒表示になります。詳細は
:syntax-off を参照してください。
:syn-manual
特定のファイルだけ構文強調表示するには、このようにします:
構文強調表示は有効になりますが、ファイルを開いても、自動的にはカラー表示になり
ません。'syntax' オプションを設定すると、カレントバッファがカラー表示になりま
す:
==============================================================================
06.5 カラー印刷 syntax-printing
MS-Windows では、次のコマンドでファイルを印刷できます:
通常の印刷ダイアログが表示されるので、プリンタを選択し、設定してください。カ
ラープリンタを使っている場合は、画面に表示されているのと同じように印刷されま
す。ただし、背景色を暗い色にしている場合は、白い紙に適した色に変更されます。
印刷方法を変更するには、以下のオプションを設定してください:
'printdevice'
'printheader'
'printfont'
'printoptions'
一部の範囲だけ印刷するには、ビジュアルモードで印刷したい範囲を選択し、印刷コマ
ンドを実行してください:
"v" でビジュアルモードを開始して、"100j" で 100 行下まで移動すると、その範囲が
選択されます。":hardcopy" で選択範囲が印刷されます。もちろん、ビジュアルモード
では他のコマンドを使って移動することもできます。
PostScript プリンタを使っている場合は Unix でも同様に印刷できます。PostScript
を印刷できない場合は多少の手間がかかります。テキストを HTML に変換してから Web
ブラウザーで印刷してください。
現在のファイルを HTML に変換するには次のコマンドを使います:
動かない場合は次のコマンドを試してください:
カリカリと音を立て処理が開始します。巨大なファイルの変換にはしばらく時間がかか
ります。しばらくすると別ウィンドウに HTMLコードが表示されるので、どこかに保存
してください (後で削除するファイルなので、適当な場所に保存してください):
このファイルをお好みのブラウザーで開いて印刷してください。うまくいけば、Vim の
画面での表示と全く同じものが印刷されます。詳しくは2html.vimを参照してくださ
い。全てが終わったら、HTMLファイルは削除してしまいましょう。
印刷する代わりに、HTML ファイルを Web サーバーに置いて、他の人にカラー付きの文
書として提供することもできます。
==============================================================================
06.6 詳しい情報
usr_44.txt 構文定義の自作
syntax 全ての詳細
==============================================================================
次章: usr_07.txt 複数のファイルを開く
Copyright: see manual-copyright vim:tw=78:ts=8:noet:ft=help:norl:
VIM USER MANUAL - by Bram Moolenaar
構文強調表示
白黒だけのテキストは退屈です。カラー表示すればファイルも生き生き見えてきます。
これは単に見た目が良いだけではなく、作業のスピードアップにもつながります。意味
のある文字列は違う色で表示しましょう。そして、画面と同じ色で印刷しましょう。
06.1 構文強調表示を有効にする
06.2 色が付かない?変な色になる?
06.3 色を変える
06.4 カラーを使う?使わない?
06.5 カラー印刷
06.6 詳しい情報
次章: usr_07.txt 複数のファイルを開く
前章: usr_05.txt 設定の変更
目次: usr_toc.txt
==============================================================================
06.1 構文強調表示を有効にする
次の簡単なコマンドで全てが始まります。
:syntax enable
これで、カラー表示になるはずです。ファイルタイプが自動的に特定され、適切な構文
強調がロードされます。すると、コメントは青、キーワードは茶色、文字列は赤、と
いった具合にカラー表示になります。ファイルが見やすくなりましたね。しばらくする
と、白黒のテキストがあなたの足を引っ張っていたことに気づくでしょう。
常に構文強調表示を使いたい場合は、":syntax enable" コマンドをvimrcファイルに
追加してください。
カラー端末のときだけ使いたい場合は、次のコマンドをvimrcファイルに追加してく
ださい。
if &t_Co > 1
syntax enable
endif
syntax enable
endif
GUI バージョンのときだけ使いたい場合は、":syntax enable" を gvimrc ファイル
に追加してください。
==============================================================================
06.2 色が付かない?変な色になる?
カラー表示がうまくいかない理由はいろいろあります:
- カラー端末じゃない。
Vim は、太字やイタリック、下線も使えます。でもそれだけではあまりカッコ
良くはできません。カラー対応の端末を入手するのがいいでしょう。
Unixなら、XFree86プロジェクト(xfree-xterm)のxtermがお勧めです。
- カラー端末であることを Vim が認識できない。
$TERM の設定が正しいかどうかを確認してください。例えば、カラー対応の
xterm なら次のように設定します:
setenv TERM xterm-color
シェルによってはこうかもしれません:
TERM=xterm-color; export TERM
端末名と実際に使っている端末名は同じでないといけません。それでも
うまく動かない場合は、xterm-colorを参照してください。この文書には
Vim をカラー表示にする方法がいくつか書いてあります。(xtermに限った文書
ではありません)
- ファイルタイプが識別できなかった。
いくら Vim でも古今東西のファイルタイプをすべて知っているわけではあり
ません。ファイルがどの言語で書かれているかを特定するのが困難な場合もあ
ります。このコマンドを使ってみてください。
:set filetype
この結果が "filetype=" ならば、ファイルタイプが認識できなかったという
ことです。手動でファイルタイプを指定することもできます。
:set filetype=fortran
どんなタイプが使えるかは、$VIMRUNTIME/syntax のディレクトリを見て
ください。GUI なら、[シンタックス]メニューも使えます。
ファイルタイプの設定はモード行(modeline)でもできます。モード行で指定
すれば、そのファイルを開いたときにカラー表示が必ず設定されます。例え
ば、Makefile なら次のように書きます。(ファイルの最初か最後に近い場所に
書いてください):
# vim: syntax=make
あなたはファイルタイプの判定方法を知っているかもしれませんね。ほとんど
のファイルは拡張子を見ればファイルタイプがわかります。
ファイルタイプを検出して設定する方法についてはnew-filetypeを参照して
ください。
- ファイルタイプ用の構文定義がない。
似ているファイルタイプを手動で設定して使ってみてください。それでも不満
な場合は、自分で構文定義ファイルを書くこともできます。詳しくは
mysyntaxfileを参照してください。
色がおかしい場合:
- 色付きの文字が非常に読みづらい
Vim は使われている背景色を推測します。黒 (もしくは同様の暗色) なら、明
るい色で文字を表示します。白 (もしくは同様の明るい色) なら、暗い色で文
字を表示します。Vim の予想がはずれると、文字は読みづらくなります。
これは 'background' オプションを設定することで解決できます。暗い背景色
を使っている場合は、次のように設定してください:
:set background=dark
明るい背景色なら次のように設定してください:
:set background=light
このコマンドは ":syntax enable" より *前* に実行してください。色が設
定された後では意味がありません。後から 'background' を設定した場合は、
":syntax reset" を実行すると、標準色に戻すことができます。
- 上に向ってスクロールしたときに色が間違っている
構文解析は、ファイル全体を読んでるわけではありません。画面に表示されて
いるところから、解析は始まります。これだと時間を大幅に節約できるのです
が、時には色を間違ってしまいます。直すには単に CTRL-L を押してくださ
い。あるいは、少し多めに上スクロールしてから戻ると直ります。
根本的に解決するには、:syn-syncを参照してください。一部の構文ファイ
ルは、ずっと上の方まで戻って解析をしています。詳しくは個々の構文定義
ファイルのヘルプを参照してください。例えば、TeX 用の定義ファイル
tex.vimがそれを行っています。
==============================================================================
06.3 色を変える :syn-default-override
標準色が好みでなければ、他の色テーマを使うことができます。GUI ならメニューの
[編集]-[色テーマ] が使えます。コマンドで指定することもできます:
:colorscheme evening
"evening" というのは色テーマの名前です。色テーマは他にもたくさんあります。ディ
レクトリ $VIMRUNTIME/colors をご覧ください。
好みの色テーマを見つけたら、":colorscheme" コマンドをvimrcファイルに追加して
ください。
自分で色テーマを作ることもできます。その手順は次の通りです。
1. 作りたいテーマに近い色テーマを選び、それを自分の Vim ディレクトリにコピーし
ます。Unix なら次のとおりです:
!mkdir ~/.vim/colors
!cp $VIMRUNTIME/colors/morning.vim ~/.vim/colors/mine.vim
!cp $VIMRUNTIME/colors/morning.vim ~/.vim/colors/mine.vim
$VIMRUNTIME は Vim が設定する環境変数なので、このコマンドは Vim から実行し
てください。
2. 色テーマファイルを編集します。この一覧が役に立つでしょう:
term 白黒端末での属性
cterm カラー端末での属性
ctermfg カラー端末での文字色
ctermbg カラー端末での背景色
gui GUI での属性
guifg GUI での文字色
guibg GUI での背景色
例えば、コメントを緑にするにはこのようにします。
:highlight Comment ctermfg=green guifg=green
"cterm" と "gui" の属性には、"bold" と "underline" が指定できます。両方を指
定したい場合は、"bold,underline" のように指定します。詳しくは:highlightを
参照してください。
3. 作った色テーマが使われるように設定します。この行をvimrcに追加してくださ
い:
colorscheme mine
次のコマンドで、よく使われる色の組み合わせを表示して、見栄えを確認できます:
:runtime syntax/colortest.vim
いろんな色の組み合せが表示されます。どれが読みやすくて見た目が良いかチェックし
てください。ただし使用できるのはこれらの色だけではありません。
#rrggbb の16進数カラーを指定することもできますし、v:colornames で16進数カラー
の新しい名前を以下のように定義することも可能です:
let v:colornames['mine_red'] = '#aa0000'
他から利用できるカラースキームを作る場合は、既存の定義がないものにすることが重
要です:
call extend(v:colornames, {'mine_red': '#aa0000'}, 'keep')
これによって、カラースキームのユーザーはあなたのカラースキームをロードする前に
正確に定義を上書き定義できます、例えば、.vimrc ファイルにて:
runtime colors/lists/css_colors.vim
let v:colornames['your_red'] = v:colornames['css_red']
colorscheme yourscheme
カラースキームの作者であれば、一部のカラー名はGUIカラーに頼ることができます。
これらは colors/lists/default.vim に定義されています。'runtimepath' 上に発
見されるこの形式のファイルは colorscheme コマンドが実行されるたびにロードされ
ます。Vim の配布物として提供される正規のリストにはすべての X11 カラーが含まれ
ています(以前は rgb.txtで定義されていました)。
==============================================================================
06.4 カラーを使う?使わない?
テキストをカラーで表示するには、たくさんの計算が必要です。表示が遅すぎると感じ
たときは、構文強調表示を一時的に止めてみてください:
:syntax clear
他のファイル (又は同じファイル) を開くと、再びカラー表示されます。
構文強調表示を完全に無効にするには、このようにします:
:syntax off
これで、構文強調表示が無効になり、すべてのバッファが白黒表示になります。詳細は
:syntax-off を参照してください。
:syn-manual
特定のファイルだけ構文強調表示するには、このようにします:
:syntax manual
構文強調表示は有効になりますが、ファイルを開いても、自動的にはカラー表示になり
ません。'syntax' オプションを設定すると、カレントバッファがカラー表示になりま
す:
:set syntax=ON
==============================================================================
06.5 カラー印刷 syntax-printing
MS-Windows では、次のコマンドでファイルを印刷できます:
:hardcopy
通常の印刷ダイアログが表示されるので、プリンタを選択し、設定してください。カ
ラープリンタを使っている場合は、画面に表示されているのと同じように印刷されま
す。ただし、背景色を暗い色にしている場合は、白い紙に適した色に変更されます。
印刷方法を変更するには、以下のオプションを設定してください:
'printdevice'
'printheader'
'printfont'
'printoptions'
一部の範囲だけ印刷するには、ビジュアルモードで印刷したい範囲を選択し、印刷コマ
ンドを実行してください:
v100j:hardcopy
"v" でビジュアルモードを開始して、"100j" で 100 行下まで移動すると、その範囲が
選択されます。":hardcopy" で選択範囲が印刷されます。もちろん、ビジュアルモード
では他のコマンドを使って移動することもできます。
PostScript プリンタを使っている場合は Unix でも同様に印刷できます。PostScript
を印刷できない場合は多少の手間がかかります。テキストを HTML に変換してから Web
ブラウザーで印刷してください。
現在のファイルを HTML に変換するには次のコマンドを使います:
:TOhtml
動かない場合は次のコマンドを試してください:
:source $VIMRUNTIME/syntax/2html.vim
カリカリと音を立て処理が開始します。巨大なファイルの変換にはしばらく時間がかか
ります。しばらくすると別ウィンドウに HTMLコードが表示されるので、どこかに保存
してください (後で削除するファイルなので、適当な場所に保存してください):
:write main.c.html
このファイルをお好みのブラウザーで開いて印刷してください。うまくいけば、Vim の
画面での表示と全く同じものが印刷されます。詳しくは2html.vimを参照してくださ
い。全てが終わったら、HTMLファイルは削除してしまいましょう。
印刷する代わりに、HTML ファイルを Web サーバーに置いて、他の人にカラー付きの文
書として提供することもできます。
==============================================================================
06.6 詳しい情報
usr_44.txt 構文定義の自作
syntax 全ての詳細
==============================================================================
次章: usr_07.txt 複数のファイルを開く
Copyright: see manual-copyright vim:tw=78:ts=8:noet:ft=help:norl: