Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

2018年に向けてNeoVim&dein.vimを整えた

$
0
0

こちらはフロムスクラッチ Advent Calendar 2017の4日目の記事です。

はじめに

  • 普段はIDEやAtomなどを全く使わず、VimでRubyやらJavaScriptを書いています。
  • 実践Vimを読んだものの、思考のスピードで編集できるほどのVim力はないです。

やりたいこと

  • literally the future of vim(直訳:文字通りvimの未来)と強気なNeovimを使ってみたい。
  • 2年前からメンテしていなくてぶっちゃけ重い.vimrcをキレイにしたい。
  • NeoBundleからとりあえずdein.vimに乗り換えた状態なので、使いこなしたい。具体的にはプラグインのTOML化を目指す。

環境

  • MacBook Pro(Retina, 13-inch, Early 2015)
  • macOS High Sierra Version 10.13.1
  • Homebrewは導入済み

NeoVimのインストール

まず最初にNeoVimをHomebrewを使ってインストールします。

$ brew install neovim$ nvim

neovim初起動.png
こんな感じでNeovimを起動することができました。

設定ファイルのパス

デフォルトだと~/.config/nvim/init.vimを読み込むようです。
僕はそういった類いのものはdotfilesでまとめて管理しているので、.zshrcに以下の記述を足しました。
こうすることで~/dotfiles/nvim/init.vimが設定ファイルになります。

.zshrc
exportXDG_CONFIG_HOME=$HOME/dotfiles

設定ファイルとの戦い

dein.vimリポジトリのgit clone

任意のディレクトリにdein.vimをgit cloneします。

$ mkdir -p ~/dotfiles/.vim/dein/repos/github.com/Shougo/dein.vim$ git clone git@github.com:Shougo/dein.vim.git \
    ~/.vim/dein/repos/github.com/Shougo/dein.vim

nvim/init.vimへの設定追加

ミニマルな設定をinit.vimに追加しました。

~/dotfiles/nvim/init.vim
" dein.vimによるプラグイン管理if&compatiblesetnocompatibleendif" dein.vimのclone先を指定するsetruntimepath+=~/dotfiles/.vim/dein/repos/github.com/Shougo/dein.vimcall dein#begin(expand('~/dotfiles/.vim/dein'))call dein#add('Shougo/dein.vim')call dein#add('Shougo/vimproc.vim', {'build': 'make'})" 補完、スニペットcall dein#add('Shougo/neocomplete.vim')call dein#add('Shougo/neosnippet')" その他必要なプラグインはこちらに追加するcall dein#end()

一度NeoVimを終了し、再度立ち上げてから:call dein#install()でプラグインのインストールができます。
ここまででdein.vimの導入は終了です。

プラグインのTOML化

プラグインをTOMLにして別ファイルで管理ができるようなので、こちらを試してみます。

~/dotfiles/nvim/init.vim
" dein.vimによるプラグイン管理if&compatiblesetnocompatibleendif" dein.vimのclone先を指定するsetruntimepath+=~/dotfiles/.vim/dein/repos/github.com/Shougo/dein.vimlet s:dein_dir = expand('~/dotfiles/.vim/dein')if dein#load_state(s:dein_dir)call dein#begin(s:dein_dir)call dein#load_toml(s:dein_dir . '/plugins.toml', {'lazy': 0})call dein#load_toml(s:dein_dir . '/lazy.toml', {'lazy': 1})call dein#end()call dein#save_state()endif

init.vimはこんな感じに書き換える。

~/dotfiles/.vim/dein/plugins.toml
[[plugins]]repo='Shougo/dein.vim'[[plugins]]# 非同期処理repo='Shougo/vimproc.vim'[[plugins]]# colorschemarepo='chriskempson/vim-tomorrow-theme'[[plugins]]# slimのハイライトrepo='slim-template/vim-slim'[[plugins]]# ES6のハイライトrepo='othree/yajs.vim'[[plugins]]# インデントを見やすくrepo='Yggdroot/indentLine'[[plugins]]# j,kによる移動を爆速にrepo='rhysd/accelerated-jk'
~/dotfiles/.vim/dein/lazy.toml
[[plugins]]# 補完repo='Shougo/neocomplete.vim'[[plugins]]# スニペットrepo='Shougo/neosnippet'[[plugins]]# スニペットrepo='Shougo/neosnippet-snippets'[[plugins]]# メソッドの定義元にジャンプrepo='szw/vim-tags'[[plugins]]# Rubyのend補完repo='tpope/vim-endwise'[[plugins]]# ローカル変数ハイライトrepo='todesking/ruby_hl_lvar.vim'

これでプラグイン管理が相当スッキリしました。
2年間放置していた.vimrcがかなりキレイになりました。

終わりに

  • NeoVim導入してみたけど、通常のVimと比べてすごい!!感動する!!という感じはない。
  • プラグインを色々入れては見るものの、普段からよく使っているものは少ないから定期的に整理したい。
  • .vimrc(init.vim)がかなり整理できたのが収穫。

Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>