#045
posted on 2021.06.05

Vimでカラースキームの変更と新しく追加する方法。

Vimでカラースキームの変更の仕方、新しくダウンロードして追加、部分的に色の設定を変更する方法のメモ。

 

VIM – Vi IMproved 8.0 で確認。

 

カラースキームの変更方法

Vimにカラースキームを適用するにはExコマンド「:syntax on」でシンタックスハイライトを有効設定している必要がある。

 

カラースキームを変更するExコマンド
:colorscheme カラースキーム名

※ 引数に入力するカラースキーム名は、「tab」キーで現在インストールされているカラースキームから候補を補完できる。(「:set wildmenu」の設定がされていれば、ステータスラインに補完候補一覧が表示される。)

 

Vim起動中にExコマンドで設定変更した場合はVimを閉じると元に戻ってしまうので、起動時から反映させたい場合は初期設定ファイルの「.vimrc」に記述しておく。(「.vimrc」の詳細は前の記事参照。)

 

 

カラースキームの設定ファイルの場所

カラースキームの設定ファイルは、所定のディレクトリに配置してあるとVimで読み込めるようになる。

 

デフォルトのカラースキームの場合

「/usr/share/vim/vim80/colors」

Vimインストール時に同梱されているカラースキームのファイルがあるディレクトリ。(「カラースキーム名.vim」)

※ 環境により異なる。

 

自分で個別にダウンロードしたカラースキームの場合

「$HOME/.vim/colors」(~/.vimrc/colors)

自分でダウンロードした場合は、このディレクトリに配置するとVimで読み込めるようになる。(Unix系の場合。)

デフォルト用のディレクトリに配置しても反映されるが、自分で追加する場合は一般的にはホームディレクトリ内の所定のディレクトリに配置する。(ユーザー別ディレクトリになるので。)

※ ターミナルで$HOMEなど環境変数を確認するコマンドは「echo 変数名」。

 

 

カラースキームの追加

Web上に公開されているカラースキームをダウンロードして追加する方法。

 

定番カラースキーム「molokai」の追加

1. 手動の場合

githubで公開されている「molokai.vim」ファイルをブラウザでダウンロードし、「$HOME/.vim/colors」(~/.vimrc/colors)のフォルダに移動する。

 

2. ターミナルからシェルコマンドで実行する場合

カラースキームのファイルを配置する「~/.vim/colors」ディレクトリが無い場合はディレクトリを作成する。

「git」コマンドでリポジトリから一式をローカルに複製して、必要な「molokai.vim」ファイルのみを所定のディレクトリに移動、不要なら残りは削除する。

mkdir -p ~/.vim/colors #ディレクトリが存在しない場合は作成しておく
git clone https://github.com/tomasr/molokai #カレントディレクトリに複製される
mv molokai/colors/molokai.vim  ~/.vim/colors/ #必要なファイルだけ移動
rm -rf molokai #ディレクトリを対象にするためとアクセス権限の問題のためにオプションを指定

mkdir : 指定したディレクトリを作成。オプション「-p」は指定パスに含まれるサブディレクトリが無ければ同時に作成する。

git clone リポジトリURL : カレントディレクトリに指定したリポジトリと同じものを複製する。

mv ファイル 移動先 : 指定したフォルダやファイルを指定したディレクトリに移動。移動先にファイル名まで指定した場合はリネームして移動される。

rm : フォルダやファイルを削除。オプション「-r」はディレクトリも削除の対象にする、「-f」はエラーメッセージを表示せず強制実行。(rmコマンドで削除すると復元できないので指定を間違えないように注意。)

 

 

カラースキームの一部の色だけ変更する方法

カラースキームの設定のままで一部の色だけ変更する場合は、Exコマンド「:highlight」で個別の項目を指定して色を変更する。

 

現在の色割り当ての確認

シンタックスで色設定する項目のグループ分けの一覧。

(現在割り当てられている色で一覧表示されるがカラーコードは表示されない。)

:so $VIMRUNTIME/syntax/hitest.vim

 

現在開いているファイルの構文ルールでどのようにシンタックス用のグループ分けがされているかの一覧。

(現在割り当てられている色で一覧表示されるがカラーコードは表示されない。)

:syn list

 

シンタックスで現在設定されている項目グループ名と適用されているカラーコードの一覧。

:highlight

 

 

現在のカラースキームで一部の色だけを変更

設定に出てくる「term」系は白黒端末用、「cterm」系はCUIのターミナル用、「gui」系はGUIのターミナル用に設定されている値。

「cterm」系は指定の256色のみ(色サンプルの参考サイト : xterm 256 colors)、「gui」系はHEX値で好きな色が設定できる。「ctermfg」は文字色、「ctermbg」は背景色、「cterm」は文字装飾の指定。

 

「.vimrc」ファイルに「autocmd」コマンドを記述して、すべてのカラースキームに対して自動的に設定を反映させる。

  1. 変更したい色の項目名と割り当てを上記のExコマンドで調べる。
  2. 「.vimrc」ファイルに色を変更する設定の記述をする。
  3. Vim起動時に「.vimrc」ファイルが読み込まれるので自動的に反映される。

※ 「.vimrc」ファイル内でカラースキームを指定する「colorscheme」コマンドより上に、「autocmd colorscheme * highlight グループ項目名 キー=値」を記述する。(「colorscheme」コマンドを「autocmd」の発火イベントに指定しているので。)

autocmd colorscheme * highlight ErrorMsg ctermfg=213 ctermbg=16
colorscheme molokai

autocmd : 指定したイベントが発生したら自動的に指定のコマンドを実行。

colorscheme : 指定したカラースキームを読み込む。(この場合は「*」ワイルドカードを指定。)

highlight : 指定したグループの指定したキーに指定した値を設定する。(この場合はエラーメッセージの文字色に213、背景色に16を設定。)

 

 

この記事をシェア