幸ログ

ナレッジを溜めていきます

emacsを使っているけどvimの環境を整えはじめました

なぜ?

Emacs Advent Calendar 2016で公開された記事を見て、
対策を先に打っておきたいなと思い、vimの環境を整え始めました。

qiita.com

emacsが使えなくなった後に動くのも嫌だったので先手必勝です。

したこと

  • vimのバージョンを上げた
  • プラグインマネージャー dein.vimを導入
  • emacsで使っている機能に似ているプラグインを導入(まだまだ導入するものがおおい...)
  • vim訓練 (一番しんどかった)

環境

ファイル構成

.vim
├── bundle
│   ├── cache_vim
│   ├── dein.toml
│   ├── installer.sh
│   ├── repos
│   └── state_vim.vim
├── config
│   ├── basic.vim
│   ├── indent.vim
│   ├── lightline.vim
│   └── search.vim
└── vimrc

今回作った環境は公開しているのでどうぞ。

github.com

vimのアップデート

最初は7.*(ド忘れ)だったので、8.0に上げました。
macには最初から入っていたので、今回はbrewで管理できるようにしました。
8.0に上げる方法を記載しておきます。

$ brew install vim
$ vi ~/.zshrc  
# brewでインストールした場合、/usr/local/bin/にインストールされます。
# 読み込む順番が/usr/local/binより先に違うvimが読み込まれると元のままなのでPathの読み込みの順番を変更してください

dein.vimの導入

NeoBundleの開発が終了するので今回はdein.vimにしました。

github.com

参考にしたページは下記のページです。

qiita.com

qiita.com

dein.vimの設定は以下のvimrcです(抜粋)。
dein.vimが発見されなければgithubから取得するようにしています。
またvimを起動した際にプラグインをインストールされるようにしています。
プラグインの管理はtomlで管理ができるということで別ファイルにしています。

"dein.vim dark power
let s:dein_dir = expand('~/.vim/bundle/')
let s:dein_repo_dir = s:dein_dir . 'repos/github.com/Shougo/dein.vim'

"dein Scripts-----------------------------
if &compatible
set nocompatible               " Be iMproved
endif

if !isdirectory(s:dein_repo_dir)
  echo "install dein.vim..."
  execute '!git clone git://github.com/Shougo/dein.vim' s:dein_repo_dir
endif
execute 'set runtimepath^=' . s:dein_repo_dir

" Required:
if dein#load_state(s:dein_dir)

  call dein#begin(expand('~/.vim/bundle'))
  let g:dein_dir = expand('~/.vim/bundle')
  let s:toml = g:dein_dir . '/dein.toml'

" Let dein manage dein
" Required:
  call dein#load_toml(s:toml, {'lazy': 0})

" You can specify revision/branch/tag.
  call dein#add('Shougo/vimshell', { 'rev': '3787e5' })

" 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

"End dein Scripts-------------------------

プラグインの導入

dein.tomlで管理をするようにしました。 導入しているプラグインはこんな感じです。
色々と調べたとことこれらを入れておけば間違いなし的な感じだったので入れました。 まだまだ理想のvimではないので道程は遠いです 。

[[plugins]]
repo = 'Shougo/dein.vim'

[[plugins]]
repo = 'Shougo/unite.vim'

[[plugins]]
repo = 'tomasr/molokai'

[[plugins]]
repo = 'cespare/vim-toml'
on_ft = 'toml'

[[plugins]] #ステータスライン
repo = 'itchyny/lightline.vim'

[[plugins]] #Spece Tabの可視化
repo = 'thinca/vim-zenspace'

[[plugins]] #インデントを可視化
repo = 'nathanaelkane/vim-indent-guides'

[[plugins]] #括弧などの対応する文字を自動入力
repo = 'jiangmiao/auto-pairs'

[[plugins]]
repo = 'tpope/vim-fugitive'

[[plugins]]
repo = 'airblade/vim-gitgutter'

github.com

github.com

github.com

github.com

github.com

github.com

github.com

github.com

github.com

github.com

github.com

vim訓練

emacsキーバインドに調教されていたので、よくキーバインドを間違えてしまいました。
なのでいい記事があったので訓練していました。
いつも使わない筋肉を使ったのでしょうか...
とても手がいたいです...

qiita.com

最後に

emacsが衰退するという話がありますが、この問題が解決できる可能性も見えているみたいです。

emacs.rubikitch.com

個人的にそろそろemacsから違うエディタに変えてもいいかなという気持ちもあります。
emacsがないとコードが書けない的なことが起こらないと思いますし、
僕自身emacsに固執する必要も無くなってきたなと思っています。
これから仕事で使う言語はemacsを使うことは適してないのでやめるいいキッカケかもしれないです。
まぁ趣味グラマーの時に使うというのもいいですが、
emacsの環境の大工事が待っているのでそこから逃れたい...←