vim-jp / vimdoc-ja / usr_06

usr_06 - Vimドキュメント

メインヘルプファイルに戻る
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

これで、カラー表示になるはずです。ファイルタイプが自動的に特定され、適切な構文
強調がロードされます。すると、コメントは青、キーワードは茶色、文字列は赤、と
いった具合にカラー表示になります。ファイルが見やすくなりましたね。しばらくする
と、白黒のテキストがあなたの足を引っ張っていたことに気づくでしょう。

常に構文強調表示を使いたい場合は、":syntax enable" コマンドをvimrcファイルに
追加してください。

カラー端末のときだけ使いたい場合は、次のコマンドをvimrcファイルに追加してく
ださい。
        if &t_Co > 1
           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

   $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:
関連キーワード:  usr, カラー, 表示, syntax, Vim, 印刷, 設定, 構文, コマンド, タイプ