まず結論:1コマンドで即時有効化する
vimのコマンドモードで以下を入力するだけで、開いているファイルにシンタックスハイライトが即座に適用されます。
:syntax enable
Nginxの設定ファイルやシェルスクリプトを素のテキストとして見ていたものが、キーワードや変数・コメントが色分けされた状態に切り替わります。ただしこの設定はセッション限りです。vimを終了すると元の状態に戻るため、恒久化には後述の .vimrc への記載が必要です。
無効に戻したいときは :syntax off を使います。また :syntax on でも同様に有効化できますが、:syntax enable はユーザーが個別に設定した色設定を維持するのに対し、:syntax on はvimのデフォルトで上書きします。実務上の差はほぼありませんが、:syntax enable を使う習慣が無難です。
コマンドを打っても色が変わらない場合の確認手順
Ubuntu Server の最小構成や、DebianのDockerイメージなどでよく起きる問題として、インストールされているのが vim.tiny であるケースがあります。vim.tiny はシンタックスハイライト機能をコンパイルオプションから除外したバイナリであるため、:syntax enable を実行しても何も起きません。
まず現在のvimがシンタックス機能を持っているか確認します。
vim --version | grep syntax
+syntax と表示されれば機能あり、-syntax であれば機能なしです。後者の場合はフル機能版をインストールしてください。
# Ubuntu / Debian 系
sudo apt install vim
# AlmaLinux / Rocky Linux / RHEL 系
sudo dnf install vim-enhanced
インストール後に vim --version | grep syntax を再実行して +syntax が出ることを確認してから次の手順に進んでください。
.vimrc に書いて起動時から自動で有効にする
毎回 :syntax enable を打つのは手間です。ホームディレクトリの ~/.vimrc に設定を書いておくと、vim起動時に自動で読み込まれます。
vim ~/.vimrc
ファイルに以下の行を追記して保存します。
syntax enable
.vimrc はユーザーごとの設定ファイルです。rootユーザーで常用する場合は /root/.vimrc を別途作成してください。システム全体に適用したい場合は /etc/vim/vimrc.local(Debian系)や /etc/vimrc(RHEL系)に記載しますが、他ユーザーの設定を変更することになるため運用チームと合意のうえで行ってください。
ファイル種別の自動認識とあわせて設定する
シンタックスハイライトの実用性を高めるには、ファイルの種別を自動判定する設定を同時に有効にすることが重要です。.vimrc には以下をセットで書くことを推奨します。
syntax enable
filetype plugin indent on
filetype plugin indent on を有効にすると、拡張子や1行目のシバン(#!/bin/bash など)からファイル種別が自動判定され、適切なシンタックスルールが選択されます。これがない状態では、拡張子のないファイルや一般的でない拡張子のファイルでハイライトが効かないことがあります。
ファイル種別を手動で指定したい場合はコマンドモードで次のように実行します。
:set filetype=nginx
:set filetype=sh
:set filetype=yaml
カラースキームの変更と色数の設定
デフォルトのカラースキームが見づらい環境では変更が効果的です。利用可能なカラースキームの一覧は以下で確認できます。
ls /usr/share/vim/vim*/colors/
コマンドモードで即時切り替えができます。
:colorscheme desert
:colorscheme elflord
:colorscheme ron
気に入ったものは .vimrc に追記します。
syntax enable
filetype plugin indent on
colorscheme desert
SSHセッションやターミナルエミュレータによっては色数が8色に制限されており、ハイライトが意図通りに表示されないことがあります。256色表示を明示的に指定する場合は set t_Co=256 を追加してください。ただし端末が256色に対応していない環境では表示が崩れることがあるため、動作確認のうえで追記してください。
syntax enable
filetype plugin indent on
colorscheme desert
set t_Co=256
実務でよく遭遇する落とし穴と対処
rootで作業するとハイライトが効かない
suやsudoでrootに切り替えた際に別ユーザーの .vimrc が読まれず、ハイライトが消えることがあります。/root/.vimrc を独立して作成するか、sudo -E vim で環境変数を引き継ぐかのどちらかで対処します。
tmuxやscreen越しで色が崩れる
tmuxを使っている現場では、~/.tmux.conf に set -g default-terminal "screen-256color" を追加して256色を有効化する必要があります。tmux内で echo $TERM を確認し、screen や xterm のままであれば色数が不足しています。
Neovimを使う場合
最近の環境でNeovimを採用している場合、シンタックスハイライトとファイル種別認識はデフォルトで有効です。設定ファイルは ~/.config/nvim/init.vim(Vimscript)または ~/.config/nvim/init.lua(Lua)になります。vimの .vimrc の内容をそのままコピーしても基本的な設定は動作しますが、Neovim固有の機能を活用する場合は別途ドキュメントを参照してください。
設定変更を反映させる方法.vimrc を編集した直後に確認したい場合は、vimを再起動せずにコマンドモードで :source ~/.vimrc を実行すると即時反映されます。
:source ~/.vimrc
「コマンドは打てる。次は”現場で通用する型”を最短で身につけたい」——そんなあなたへ。
ネットの断片的なTipsをコピペするだけでは、体系的な運用スキルはなかなか積み上がりません。リナックスマスター.JPの無料メルマガ「リナマガ」では、現場で実際に使うLinuxサーバー運用の考え方を、順を追って実務目線でお届けしています。いま登録された方には、安全なサーバー構築の「型」をまとめた『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼント中です。
>> 図解60P『Linux入門マニュアル』を無料で受け取る
(メルマガ登録は10秒・いつでも解除OK)
※ 「独学の時間がもったいない」「プロから現場の技術を最短で学びたい」という本気の方には、2日で実務レベルが身につく初心者向けハンズオンセミナーもご用意しています。
