アカウント共通でVIMカラースキーマを使おう！

LinuxでのVIMのカラースキーマ設定の整理をメモ。

## 課題

次の課題を解決！

- CentOSをminimal（必要最低限パッケージ）なんかでインストールすると、VIMのデフォルトなカラースキーマなどはインストールされない。
- Webで公開されているMolokaiとかのカラースキーマの導入手順などは簡単に検索できるけど、ユーザー（アカウント）ごとの導入手順がほとんどで、複数のユーザーが同じカラースキーマを使う場合のベターな方法が見つからない。
	- 説明の中には、スキーマの実体ファイルだけを使ってて、ライセンスファイルやREADMEファイルなんかを適切に保持しなさそうなやり方があるので、なんとなくよろしくないかな。

## 場面ごとの手順

### デフォルトのカラースキーマのインストール

もし、次のディレクトリがなかった場合は、デフォルトのカラースキーマがインストールされていない。
使う場合もあるだろうからインストールしておく。

```
$ ls /usr/share/vim/vimNN/colors        # NNは73とか74とかの数字
```

インストールはこう。

```
$ sudo yum install vim-enhanced
```

### 共通で使う公開カラースキーマのインストール

例えば、定番の Molokai などは、他のユーザーも使うかもしれないので、あらかじめ共通のファイルとしてインストールしておけば、他の人も楽チン。

**1. 共通フォルダの作成**

`/usr/local/share/vim` 下に置き場を作る。

```
$ sudo mkdir -p /usr/local/share/vim/colors
$ sudo mkdir -p /usr/local/share/vim/color_schemes
```

**2. カラースキーマのインストール**

例として、[Molokai](https://github.com/tomasr/molokai) を導入する。

```
$ cd /usr/local/share/vim/color_schemes/
$ sudo git clone https://github.com/tomasr/molokai.git
```

**3. リンクを貼る**

`color_schemes` の同列ディレクトリ `colors` の中に、カラースキーマのシンボリックリンクを貼る。

```
$ cd /usr/local/share/vim/colors
$ sudo ln -s ../color_schemes/molokai/colors/molokai.vim

# 確認
$ ls -l
total 0
lrwxrwxrwx 1 root root 43 Nov 22 19:10 molokai.vim -> ../color_schemes/molokai/colors/molokai.vim
```

他のカラースキーマも、同様にこの`color_schemes`ディレクトリ下で`git clone`などして、カラースキーマごとのディレクトリを作り、`colors`ディレクトリにリンクを貼って管理する。


## ユーザー（アカウント）ごとの設定

各ユーザー（アカウント）のディレクトリ下に、上の共通カラースキーマファイルのディレクトリへのリンクを貼る。

**1. 設定ディレクトリを作ってリンクを貼る**

目的のユーザー（アカウント）のホームディレクトリ下でそれぞれで行ってもらう（または、管理者が行うなりする）。

```
$ cd
$ mkdir .vim
$ cd .vim
$ ln -s /usr/local/share/vim/colors

# 確認
$ ls -l
total 0
lrwxrwxrwx 1 slacker slacker 27 Nov 22 19:15 colors -> /usr/local/share/vim/colors
```

すでに個人で`~/.vim/colors`ディレクトリを作っていて、別途カラースキーマを導入しているのであれば、`/usr/local/share/vim/colors`のシンボリックではなく、その下のカラースキーマのVIMファイルへのリンクを貼ればよい。

```
# 個人でcolorsディレクトリを管理している場合
$ cd ~/.vim/colors
$ ln -s /usr/local/share/vim/colors/molokai.vim
```

**2. .vimrc を編集**

`.vimrc`を編集して、カラースキーマを反映させる。
ここらへんの設定に関する情報は、検索すればすぐ探せるので、他の必要な設定と合わせてしておこう。

```:.vimrc
syntax on
colorscheme molokai
set t_Co=256
```

## rootの設定

アカウントrootについても同様に設定できる。

注意点としては、Linuxで一般アカウントは、`vi`が`vim`のエイリアスになっているのに対し、rootの場合は、そのまま`vi`が起動する。なので、`.vimrc` は読み込まれず、目的のカラースキーマが設定されない。
下記を参考に、エイリアスを設定するなりして、必要ならば対処する（※）。

（参考）[CentOS/CentOSでrootユーザにてviを使用すると色がつかない場合の対処](http://linux.just4fun.biz/CentOS/CentOS%E3%81%A7root%E3%83%A6%E3%83%BC%E3%82%B6%E3%81%AB%E3%81%A6vi%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%81%A8%E8%89%B2%E3%81%8C%E3%81%A4%E3%81%8B%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88%E3%81%AE%E5%AF%BE%E5%87%A6.html)

（※）必要ならば、と書いたのは、特段設定しなくてもよい、という場合もあるから。
そもそも、rootアカウントに切り替えてからの作業を禁止する運用もあるだろう（基本 `sudo` で実行するだろうし）。また切り替えがOKだとしても、一般ユーザーと同じカラースキーマが適用されていると、誤って編集してはいけないファイルも上書きしてしまうこともあるかもしれない。
そういう問題を回避するため、あえて何もしないという方法も検討を。
もし設定する場合でも、一般ユーザーとは異なる色味のカラースキーマにしておいたほうが良いだろう。

## その他

- サーバ単位での共通ファイル `/etc/vimrc` に書いちゃえば、どのユーザーも同じカラースキーマが適用されるだろう。だがお勧めは**しない**。カラースキーマなど、個人のユーザビリティに依存するものは、やはり個人の設定で解決すべきだからだ。
- 昔のLinuxディストリビューションには、読み取り専用で開く `view` コマンドなどがあった。これを使うと不用意な保存を防げたりした。`less` がとって代わったのだと思うが、もし復活させるのであれば `alias view='vi -R'` などと、エイリアスを`.bashrc`などに設定するなどよいだろう。

（以上）