よくわからないエンジニア

よく分からないエンジニアの日々の記録

よくわからないエンジニア

Raspbianにdein.vimをインストールする

先月、ソフトウェアデザインを購入しました。

vim絶対主義、いいフレーズですね。
ただ私はトーシロなので、vimのカスタマイズ、ほぼしてません。
折角なので、購入したこちらを参考に、vimの設定変更やプラグイン導入にチャレンジしようかと思いました。

目次

(私の)初期vimrc

過去に一度書いた事がありますが、私の.vimrcは以下のようになっています。
尚、環境はRaspbianでvimのバージョンは version 8.0.707です。

set ruler
set incsearch
set hlsearch
set showmatch
set wrapscan
set ignorecase
set smartcase
set hidden
set history=500
set autoindent
set expandtab
set tabstop=4
set shiftwidth=4
syntax on

へぇ、こんな風に設定していたんだという気持ちになりました。意味わからんまま使うのもあれなので、今何を設定しているのか調べてみます。

set ruler

現在のカーソル位置を「列,行」で表示してくれます。これは必要。

set incsearch

検索文字を入力するとその時点で検索が開始される。何を言っているかわからないと思うが、使えばわかる。

set hlsearch

検索にマッチする文字列がハイライトされる。

set hlsearch

検索にマッチする文字列がハイライトされる。

set showmatch

対になるカッコを強調表示してくれる。

set wrapscan

最後まで検索したら一番上に戻る。

set ignorecase

検索の時に、大文字小文字を区別しない。historyで検索をかければ「history」も「HISTORY」も見つけられる。

set smartcase

検索文字が大文字と小文字混在の時は、大文字小文字を区別して検索する。

set hidden

保存されていないファイルがあっても別ファイルを開ける。buffer使うときは必須ですね。

set history=500

コマンドラインモードの履歴を指定の数保存する。この場合500まで保存。

set autoindent

改行する時に前の行のインデントを引き継ぐ。

set expandtab

タブ入力をスペースにする。私はスペース派。

set tabstop=4

タブ文字の幅。

set shiftwidth=4

自動インデントの幅。

syntax on

文字に色付けする。なんかRaspbianのvimだとこれ書いとかないと色変わんなかったんで書いてます。

いつ設定したか忘れましたが、これだけでも無いと不便です。

vimのプラグイン管理(dein.vim)インストール

早速プラグインを入れようと思ったのですが、vimのプラグインを管理するものがあるそうな。最近の主流はdein.vimとの事で、早速導入してみます。

$mkdir -p ~/.cache/dein
$ cd ~/.cache/dein
$ curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh
$ sh ./installer.sh ~/.cache/dein
Done.
Complete setup dein!

スクリプト走らせると、その環境の設定も表示してくれます。私の場合は以下のような設定内容が表示されました。

if &compatible
  set nocompatible               " Be iMproved
endif

" Required:
set runtimepath+=/home/engineer1/.cache/dein/repos/github.com/Shougo/dein.vim

" Required:
if dein#load_state('/home/engineer1/.cache/dein')
  call dein#begin('/home/engineer1/.cache/dein')

  " Let dein manage dein
  " Required:
  call dein#add('/home/engineer1/.cache/dein/repos/github.com/Shougo/dein.vim')

  " Add or remove your plugins here:
  call dein#add('Shougo/neosnippet.vim')
  call dein#add('Shougo/neosnippet-snippets')

  " You can specify revision/branch/tag.
  call dein#add('Shougo/deol.nvim', { 'rev': '01203d4c9' })

  " Required:
  call dein#end()
  call dein#save_state()
endif

" Required:
filetype plugin indent on
syntax enable

" If you want to install not installed plugins on startup.
"if dein#check_install()
"  call dein#install()
"endif

こちらを.vimrcに記述せよとのこと。早速記入します。

$ ~/.vimrc
if &compatible
  set nocompatible               " Be iMproved
endif

" Required:
set runtimepath+=/home/engineer1/.cache/dein/repos/github.com/Shougo/dein.vim

" Required:
if dein#load_state('/home/engineer1/.cache/dein')
  call dein#begin('/home/engineer1/.cache/dein')

  " Let dein manage dein
  " Required:
  call dein#add('/home/engineer1/.cache/dein/repos/github.com/Shougo/dein.vim')

  " Add or remove your plugins here:
  call dein#add('Shougo/neosnippet.vim')
  call dein#add('Shougo/neosnippet-snippets')

  " You can specify revision/branch/tag.
  call dein#add('Shougo/deol.nvim', { 'rev': '01203d4c9' })

  " Required:
  call dein#end()
  call dein#save_state()
endif

" Required:
filetype plugin indent on
syntax enable

" If you want to install not installed plugins on startup.
"if dein#check_install()
"  call dein#install()
"endif

set ruler
set incsearch
set hlsearch
set showmatch
set wrapscan
set ignorecase
set smartcase
set hidden
set history=500
set autoindent
set expandtab
set tabstop=4
set shiftwidth=4
syntax on

.vimrcがこんな感じになりました。
最後にvimを起動して、インストールします。

$ vim
:call dein#install()

しかし、この後にvimを起動しようとするとターミナルが文句を言い始めます。

$ vim ~/.vimrc
deol.nvim requires Neovim or terminal feature enabled Vim.
Press ENTER or type command to continue

どうやらNeovimか新しいvimを使えとのこと。deol.nvim自体がなんなのかわからんので、こいつをvimrcからコメントアウトしたら出なくなりました。

vimプラグイン(NERDTree)のインストール

インストールは出来たみたいなので、早速SDで紹介されていたNERDTreeを入れてみます。
欲しいプラグインを.vimrcの中に追記したあげれば良いようです。

$ vim .vimrc

  call dein#add('scrooloose/nerdtree')

  " Required:
  call dein#end()
  call dein#save_state()
endif

call dein#add('scrooloose/nerdtree')を追記しました。再び:call dein#install()で追加したプラグインがインストールされます。
vimのコマンドで:NERDTreeと入力するとNERDTreeが使えるようになります。いちいち入力するのが面倒なので、以下をvimrcに追加することで、Ctrl+eでNERDTreeが開けるようになります。

$ vim .vimrc
nnoremap <silent><C-e> :NERDTree<CR>

便利なものを使って生産性上げたいですが、まずは使い方を覚えるところからスタートですね。