neocomplete.vimからdeoplete.nvimに乗り換え〜とか思ったんですが、使ってたvim8だと導入めんどくさそうとか思って、軽い気持ちでNeovimに手を出してみたら結局いろいろめんどくさかったけど、結果ちょっと快適になったかもしれないとかそういう話です。
自分用の忘備録としてまとめます。
Vimを使い始めて2年目、(フロント)エンジニアリング歴も同じくらいのデザイナーが書く記事なので、Vimmer先輩諸氏におかれましては、気になる部分とか色々あるかと思いますが、HRTの精神で編集リクエストやコメントなどしていただけるとありがたく思います。
初めてのNeovim
Neovim
次世代のVimと言われているようです。Vim歴1年半くらいのぺーぺーなので突っ込んだところはよくわかってません。
VimからForkして開発されてるってことくらいしかわかってません。でもVimとほとんど変わりません。Vimと互換性があるようで大抵のVim scriptとかオプションはそのまま使えます。
あとはセルフチェック機能があるとか…それくらいですかね。噂ではVimより若干早い…のかなぁ(体感的にはあまり感じてないです)。
基本的には公式のドキュメントを見ればインストールとかのセットアップは出来ます。
Vimで使ってる.vimrc
とかもそのまま使えたり.vim
も使えたりするようです。
私の場合は、まずはNeovimとDeoplete.nvimを試しに使ってみたいというのと、vimrcファイルがプラグインとかキーマッピングの設定とかがとにかくごちゃごちゃしてるのを「この際だからtomlファイルとか使って整理したいなぁ」とか考えたんで、VimとNeovimの設定の共有はしないことにして、別々に管理することにしました。
とりあえずな感じですが、設定ファイルはこの辺に突っ込んであります。
redbear/nvim at master · ksm240/redbear · GitHub
ディレクトリ構造はこんな感じになってます。.vim
配下はいろいろ入りすぎてるので端折ってます。
├── .bash_profile
├── .bashrc
├── .git_commit_template
├── .gitconfig
├── .gitignore_global
├── .vim
├── .vimrc
└── nvim
├── dein.toml
├── dein_lazy.toml
├── init.vim
├── lightline.vim
└── rc
└── vim-airline.rc.vim
.vim
はGithubに突っ込んでいろんな環境で使えるようにしてますが、Neovimのプラグインをインストールするディレクトリはここには入れてません。特に理由らしい理由はないんですが、init.vim
とdein.toml
とかがあれば初回起動時に指定したディレクトリにインストールされるのでわざわざバージョン管理しなくてもいいかなって思っただけです。
Githubのリポジトリの中身を見たら分かるんですが、dein_lazy.toml
の中身はまだ空のままです。
というのも、lazy_loadの使い所がよくわかってなくて、参考にした記事とかを見ると、deoplete.nvimとかの設定はlazy.tomlに書くのが一般的なんですかね…よく分かってないのでとりあえず全部dein.tomlに突っ込んでます。
そんな感じなのでlazy.tomlはまだ空の状態です。そのうち整理したい(…)。
いわゆるPowerline的なStatuslineのアレ
一番最初はPowerlineを使っていましたが、クリーンインストールなどしたときに最初のセットアップが結構めんどくさいなぁ(Pythonを有効化したりとか…)と思って、lightline.vim使ってみた時もありました。しかしこれはこれで表示をいい感じにするのに設定めんどくさくなって今はvim-airlineを使ってます。
…………DeopleteでPython3有効にしたならPowerlineに戻っても良かったのでは…って思わなくもないです。でも、vim-airlineはthemeがあるので、使ってて楽しいなぁって思うので、入れてよかったって思います。こういうの大事だって思い込んでます。
ちゃんと調べてないのでわかりませんが、Powerlineもthemeとかあったりするんですかね?
ついでだからUnite.vimからdenite.nvimにした話
多分、きっと早い。正直私のようなペーペーにはよく分からない領域の違いなのかなって思ってます。あー、でもpattern検索は確かに早かったかもしれない……多分。
肝心のDeopleteどうよっていう話
補完は大事だ。
使い心地はneocomplete.vimと変わらず快適に使えてます。
ただ、導入がちょっとめんどくさいなって思いました。Neovimだと比較的手軽に入れられるかなって思いましたけど、Vim8はpython3が有効化されてなかったりするとVimを再インストールから始まったりとかあるからちょっとめんどくさそうだなぁって思ってます。(Neovimの設定いじってる間にVim8対応したよっていうのが来たんですけど、ドキュメントちょっと眺めて「めんどくさそうなぁ」って思って後回しにしたんですよね……ガチVimmerな人はそんなことないのかもしれないけど)
設定してて詰まったところとかのメモ
カラースキーム
Vim8でもそうだったんですが、 iceberg.vimを設定しようとしたら、なんかモノクロームっぽい画面で、「明らかに公式サイトのプレビューの色と違う」って感じになっててちょっとつまりました(キャプチャ参照)。
「明らかに公式のプレビューと違うだろ、これ」っていうときのキャプチャがこちら。
原因は:set termguicolors
になってなかったのが原因でした。
ほかのカラースキームは特に設定してなくても普通に使えてたんですけど、iceberg.vimは設定しないとモノクロームな世界になってしまいましたね。ggっても似たようなことになって詰まってるみたいな記事は見かけなかった気がするので、きっと私の設定の問題だったと思います。
ggりまくって知ったのはVimのシンタックスハイライトとカラースキーム周りで詰まったら、大体以下の設定を確認してみると解決するかもしれません。
* 使ってるターミナルのカラー設定
* rcファイルで:set termguicolors
がされるか
* 上に同じく、:set syntax on
とか:set syntax enable
とかになってるか
* xterm-colorの設定(参考は公式ドキュメントに書いてあります。syntax - Vim日本語ドキュメント。:h xterm-color
で見れる)
などなどなど。
ちなみになんですけど、Neovimはローカライズされてるのですこし助かりますね。
おまけ:おすすめカラースキーム
- Dracula — A dark theme for Vim and 40+ apps
- iceberg.vim DraculaはSlackのカラースキーム(っていうかコード?)も配布してて、トータルで楽しめて好きですね。Slackもicebergな配色にしたい。
追記
https://qiita.com/ksm240/items/5cd62fdd15d95d21d173#comment-53ec65869d15dff4ba76
icebergのカラーコードを公開している方からコメントをいただきました!ありがたい!
GitHub - 39e/slack-iceberg: Color theme for slack
設定ファイルを複数のMacで共有するためのシンボリックリンクの設定
本業の方からしたら「何を今更…」な話なんですがln -s
するとき、大体$HOME
で作業すると思うんですが、この時にめんどくさがって
$ ln -nvfs redbear/nvim/init.vim .config/nvim/init.vim
とかすると、/redbear/nvim/init.vim
を参照してしまって、cat
すると中身が空っぽの別ファイルになってることがわかります。
つまり、「ちがうそうじゃない」ってことですね。
$ ln -nvfs ~/redbear/nvim/init.vim ~/.config/nvim/init.vim
ってしないとダメなんですって。
先輩エンジニアさんに「パス操作するときは相対パスと絶対パスを意識せよ」というアドバイスをいただきました。ひとつ利口になった赤いくまです。
todo
- プラグインごとのキーマッピングとかの設定は
**.rc.vim
とかにして管理したいかも。 - Vim8もdeopleteに切り替えたいかも。
- Vim8もvim-airlineにしてもいいかもしれない。
- つまりvim8でもいいのでは。(身も蓋もない)
Vim Conf 2017行きたかった人生でしたねぇ。
最後に宣伝ですが、groovesっていう会社ではデザイナーを募集してます。
「フロントエンドやってるけど、UX/UIデザインとか興味があってアジャイルな開発チームに興味がある」っていう方がおられましたら、お気軽に「話を聞きに行きたい」していただけるとデザイナー陣がめっちゃ喜ぶのでよろしくお願いします。ざっくばらんに情報共有でも歓迎です!リモート面談も歓迎です〜。
詳しくはWantedlyの求人ページへ