「vim」の設定

現在起動している「vim」にのみ設定の変更を適用する場合、コマンドモードで
:(コロン)
と入力した後、設定を行う。
「vim」全てに変更を適用する場合、「~/.vimrc」に記述する。

カラーの設定

カラーの有効・無効化

syntax on 有効
syntax off 無効

「vim」のカラーの修正法

まず、「vim」を起動し、コマンドモードで以下のように入力する。

:highlight

そして、表示された結果を見ながら変えたい文字のグループを探す。
例えばCommentを赤にしたいときには以下のように設定する。

:highlight Comment ctermfg=DarkRed

なお、cterm がカラー対応しているterm上での色指定。
使える色は「vim」を起動し、コマンドモードで以下のように入力することで調べられる。

:edit $VIMRUNTIME/syntax/colortest.vim
:source %

Linuxの一部のディストリビューション等で検索結果が見にくい場合、見易くする為に以下のように設定。

:highlight Search ctermbg=1

カラースキーマのインストール

まとめて「vim」のカラーを変更する為、カラースキーマを設定する。
まず、以下のサイトから希望のカラースキーマをダウンロードする。
http://www.vim.org/
ここでは、BlackSeaをホームディレクトリにダウンロードしたものとする。

Unix$ mkdir -p ~/.vim/colors <= カラースキーマ格納ディレクトリの作成
Unix$ mv BlackSea.vim ~/.vim/colors/ <= カラースキーマを指定ディレクトリに移動

これで、vimを起動し、以下のようにカラースキーマ名を指定すれば適用される。

:colorscheme BlackSea

基本的にファイル名から.vimを取り除いたものがカラースキーマ名である。
「vim」起動時に毎回設定されるよう、設定ファイルを編集する。

Unix$ vi ~/.vimrc <= 設定ファイルの編集
colorscheme BlackSea <= 追加
文字コード関係

文字コードの指定

「vim」での文字コードはset encodingで指定できる。

:set encoding=euc-jp <= デフォルトの文字コード
:set fileencodings=iso-2022-jp,sjis,utf-8 <= 自動判別に用いる文字コード

現在の設定の確認

現在の設定を確認するにはコマンドモードで以下のように入力する。

:set enc? <= 文字コードの確認
:set fenc? <= ファイルエンコードの確認
:set fencs? <= 自動判別の設定確認

文字コードを指定してファイルを開く方法

Unix$ vim "+e ++enc=euc-jp ファイル名" <= EUC-JPのファイルを開く場合

Unix$ vim "+e ++enc=utf-8 ファイル名" <= UTF-8のファイルを開く場合

Unix$ vim "+e ++enc=cp932 ファイル名" <= Shift-JISのファイルを開く場合

Unix$ vim "+e ++enc=iso-2022-jp ファイル名" <= 7ビットJISコードのファイルを開く場合
「vim」の設定

「vim」の設定

「~/.vimrc」を編集する。

Unix$ vi ~/.vimrc <= 設定ファイルの編集
"----------------------------------------------------
" 基本的な設定
"----------------------------------------------------
" viとの互換性をとらない(vimの独自拡張機能を使う為)
set nocompatible
" 改行コードの自動認識
set fileformats=unix,dos,mac
" ビープ音を鳴らさない
set vb t_vb=
" バックスペースキーで削除できるものを指定
" indent  : 行頭の空白
" eol     : 改行
" start   : 挿入モード開始位置より手前の文字
set backspace=indent,eol,start

"----------------------------------------------------
" バックアップ関係
"----------------------------------------------------
" バックアップをとらない
set nobackup
" ファイルの上書きの前にバックアップを作る
" (ただし、backup がオンでない限り、バックアップは上書きに成功した後削除される)
set writebackup
" バックアップをとる場合
"set backup
" バックアップファイルを作るディレクトリ
"set backupdir=~/backup
" スワップファイルを作るディレクトリ
"set directory=~/swap

"----------------------------------------------------
" 検索関係
"----------------------------------------------------
" コマンド、検索パターンを100個まで履歴に残す
set history=100
" 検索の時に大文字小文字を区別しない
set ignorecase
" 検索の時に大文字が含まれている場合は区別して検索する
set smartcase
" 最後まで検索したら先頭に戻る
set wrapscan
" インクリメンタルサーチを使わない
set noincsearch

"----------------------------------------------------
" 表示関係
"----------------------------------------------------
" タイトルをウインドウ枠に表示する
set title
" 行番号を表示しない
set nonumber
" ルーラーを表示
"set ruler
" タブ文字を CTRL-I で表示し、行末に $ で表示する
set list
" 入力中のコマンドをステータスに表示する
set showcmd
" ステータスラインを常に表示
set laststatus=2
" 括弧入力時の対応する括弧を表示
set showmatch
" 対応する括弧の表示時間を2にする
set matchtime=2
" シンタックスハイライトを有効にする
syntax on
" 検索結果文字列のハイライトを有効にする
set hlsearch
" コメント文の色を変更
highlight Comment ctermfg=DarkCyan
" コマンドライン補完を拡張モードにする
set wildmenu

" 入力されているテキストの最大幅
" (行がそれより長くなると、この幅を超えないように空白の後で改行される)を無効にする
set textwidth=0
" ウィンドウの幅より長い行は折り返して、次の行に続けて表示する
set wrap

" 全角スペースの表示
highlight ZenkakuSpace cterm=underline ctermfg=lightblue guibg=darkgray
match ZenkakuSpace / /

" ステータスラインに表示する情報の指定
set statusline=%n\:%y%F\ \|%{(&fenc!=''?&fenc:&enc).'\|'.&ff.'\|'}%m%r%=<%l/%L:%p%%>
" ステータスラインの色
highlight StatusLine   term=NONE cterm=NONE ctermfg=black ctermbg=white

"----------------------------------------------------
" インデント
"----------------------------------------------------
" オートインデントを無効にする
"set noautoindent
" タブが対応する空白の数
set tabstop=4
" タブやバックスペースの使用等の編集操作をするときに、タブが対応する空白の数
set softtabstop=4
" インデントの各段階に使われる空白の数
set shiftwidth=4
" タブを挿入するとき、代わりに空白を使わない
set noexpandtab

"----------------------------------------------------
" 国際化関係
"----------------------------------------------------
" 文字コードの設定
" fileencodingsの設定ではencodingの値を一番最後に記述する
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,euc-jp,cp932,iso-2022-jp
set fileencodings+=,ucs-2le,ucs-2,utf-8

"----------------------------------------------------
" オートコマンド
"----------------------------------------------------
if has("autocmd")
    " ファイルタイプ別インデント、プラグインを有効にする
    filetype plugin indent on
    " カーソル位置を記憶する
    autocmd BufReadPost *
        \ if line("'\"") > 0 && line("'\"") <= line("$") |
        \   exe "normal g`\"" |
        \ endif
endif

"----------------------------------------------------
" その他
"----------------------------------------------------
" バッファを切替えてもundoの効力を失わない
set hidden
" 起動時のメッセージを表示しない
set shortmess+=I

ステータスライン

上記で設定しているステータスラインは基本的に以下の書式で設定する。

%{最小幅}.{最大幅}{item}

itemに指定できるものは以下の通り。
なお、ここでは最小幅と最大幅は省略している。

item 説明
%f 相対パスでファイル名を表示
%F フルパスでファイル名を表示
%t ファイル名のみ表示
%m 修正フラグを括弧付きで表示
%M 修正フラグを括弧無しで表示
%r 読込専用フラグを括弧付きで表示
%R 読込専用フラグを括弧無しで表示
%h ヘルプバッファフラグを括弧付きで表示
%H ヘルプバッファフラグを括弧無しで表示
%w プレビューウィンドウフラグを括弧付きで表示
%W プレビューウィンドウフラグを括弧無しで表示
%y ファイルタイプを括弧付きで表示
%Y ファイルタイプを括弧無しで表示
%k 他言語用マッピング |:lmap| が使われているとき、変数 "b:keymap_name" または 'keymap' を "" と表示
%n バッファ番号を表示
%b カーソルの文字の文字コードを10進数で表示
%B カーソルの文字の文字コードを16進数で表示
%o カーソル下の文字がファイル内で何バイト目かを表示。先頭は1
%O カーソル下の文字がファイル内で何バイト目かを16進数で表示
%l カーソルのある行数を表示
%L ファイルの総行数を表示
%c カーソルのある列数を表示
%v 画面上の何列目にカーソルがあるかを表示
%V 画面上の何列目にカーソルがあるかを表示。表示形式は -{num}
値が 'c' と等しければ表示されない。
%p カーソル位置がファイルの何%の位置にあるかを表示
%P カーソル位置がファイルの何%の位置にあるかを3文字で表示
%a 既定のタイトルと同様の引数ファイルリストを"({current} of {max})" と表示
ファイル引数の数が0または1のときは空
%{ } %{ と } の間のを評価し、結果に置き換える。
( グループ ) 項目をグループでまとめる(最小値・最大値は指定できない)
%< 行が長すぎるときに切り詰める位置(最小値・最大値は指定できない)
%= 左寄せ項目と右寄せ項目の区切り(最小値・最大値は指定できない)
▲ページのトップへ