みんなでvimをはじめよう!

f:id:MDaiki:20200313212625j:plain 出典:エンジニアじゃなくても役立つ!テキストエディタ「Vim」の基本とコマンドまとめ

先日、Atom から vimに変更しました。 この記事では、「vimを初めてみたい!」、「vim環境構築に挫折したけどもう一度やってみよう!」という方を対象に書いていこうと思います。
私がMacOSなので、環境構築はMacOSの方向けになります。

プラグインマネージャーは dein を使用します。

vimの環境構築

vim8のインストール

Macには標準でvimが入ってますが、このvimでは色々と問題があります。ですから、vimを homebrew からインストールします。

 $ brew install vim

vimのバージョンを確認してみてください. バージョン 8以上ならインストール完了です。

設定ファイルの作成

vimの設定を保存するディレクトリを作成します。

 $ mkdir ~/.vim

vimrcを作成します。

 $ touch ~/.vim/vimrc

deinを使用するためのdein.tomlとdein_lazy.tomlを作成します。

 $ touch ~/.vim/dein.toml
 $ touch ~/.vim/dein_lazy.toml

vimのカスタマイズ

deinを使用するための設定をvimrcに記入

プラグインマネージャーdeinを使用するためにvimrcに設定を記述します。 下のソースコードを、vimrcの一番上に記述します。

" dein.vim settings {{{
" install dir {{{
let s:dein_dir = expand('~/.cache/dein')
let s:dein_repo_dir = s:dein_dir . '/repos/github.com/Shougo/dein.vim'
" }}}

" dein installation check {{{
if &runtimepath !~# '/dein.vim'
    if !isdirectory(s:dein_repo_dir)
        execute '!git clone https://github.com/Shougo/dein.vim' s:dein_repo_dir
    endif
    execute 'set runtimepath^=' . s:dein_repo_dir
endif
" }}}

" begin settings {{{
if dein#load_state(s:dein_dir)
    call dein#begin(s:dein_dir)

    " .toml file
    let s:rc_dir = expand('~/.vim')
    if !isdirectory(s:rc_dir)
        call mkdir(s:rc_dir, 'p')
    endif
    let s:toml = s:rc_dir . '/dein.toml'

    " read toml and cache
    call dein#load_toml(s:toml, {'lazy': 0})

    " end settings
    call dein#end()
    call dein#save_state()
endif
" }}}

" plugin installation check {{{
if dein#check_install()
    call dein#install()
endif
" }}}

" plugin remove check {{{
let s:removed_plugins = dein#check_clean()
if len(s:removed_plugins) > 0
    call map(s:removed_plugins, "delete(v:val, 'rf')")
    call dein#recache_runtimepath()
endif
" }}}
" }}}

vimrcに好きな設定を書く

ここからは、正解なんてありません。自分オリジナルのvimにカスタマイズしていきましょう!
自分のvimrcのおすすめ設定を参考に載せておきます。 これをコピペするなり自分で調べたりして書きましょう。

" VimのVimのバッファやレジスタ内などで使用する文字コードを設定
set encoding=utf-8

" Vimがスクリプトを処理するとき、scriptencodingで指定した文字コードから
" encodingで指定した文字コードに変換される
scriptencoding utf-8

" 既存のファイルを開くとき、Vimが使用する文字コードを判定する順番
" 先頭から順に試される
set fileencodings=utf-8,iso-2022-jp,euc-jp,sjis

" シンタックスハイライトを有効にする
syntax enable

" ファイルの種類に応じて自動で設定を行うような プラグイン
filetype plugin indent on

" カーソルラインを表示
set cursorline

" 行番号
set number

set helplang=ja,en

" 検索結果をハイライトする
set hlsearch

" 検索時大文字小文字を区別しない
set ignorecase

" 検索時、大文字を入力した場合大文字小文字を区別する
set smartcase

" 文字を入力するたびに、その時点でパターンマッチしたテキストをハイライト
set incsearch

if has('persistent_undo')
    let undo_path = expand('~/.vim/undo')
   " ディレクトリが存在しない場合は作成
    if !isdirectory(undo_path)
        call mkdir(undo_path, 'p')
    endif
    let &undodir = undo_path
    set undofile
endif
" 展開するスペースの個数
set tabstop=4

" タブをスペースに展開
set expandtab

" インデントを考慮して改行
set smartindent

" インデントのスペースの数
set shiftwidth=4

" タブページ
set showtabline=2

"ステータスライン
" set showmatch
set laststatus=2

"クリップボードコピー
set clipboard+=unnamed

"短形選択
set virtualedit=block

" コマンドライン補完
set wildmenu

deinを使用してカラースキームを変更してみる.

deinの使い方の入門としてvimのカラースキームを変更してみます。 このサイトから自分の好きなカラースキームを検索し、そのカラースキームのgithubに移動します。 私は、 onedark が好きなので今回は、vimのカラースキームを onedark にしてみます。

githubに移動すると、左上に、 joshdick/onedark.vim と書かれています。それをコピーしてください。
そして、 dein.toml に下のように記述します。

# エディタカラー
[[plugins]]
repo = 'joshdick/onedark.vim'

次に、 vimrc に下のように記述します。

" カラー
colorscheme onedark

これでカラースキームをonedarkに変更できました。 一度vimを閉じて、もう一度起動してみてください。 カラースキームが変わっています。

終わりに

vimはカスタマイズするにつれて自分だけの最強エディタにすることが可能です。 他人のカスタマイズを参考にしたりプラグインを作ってみたりしても面白いかもしれません。
良いvimライフを!