はじめに
皆さん、こんにちは!今週のブログは額田が担当させていただきます!
私事ですが未経験からエンジニアに転職をして、ついに1年が経過し時間が過ぎる速さを感じています。せっかく転職して1年が経過したということで、ここはやっぱりVimの話題で行きたいと思います。
というのも、なんちゃってVimmerを名乗っておきながら自分の.vimrc
はCTOに頂いた設定をずっと使っていたんですよね。
せっかくなので何か自分でもカスタマイズしていきたいなぁと思ったので今回の記事にさせて頂きました!
この記事を読んで頂いた先輩Vimmerの皆様に何かオススメの設定とかプラグインとかあったら、教えていただけたらホントに嬉しいです(^ ^)
colorscheme
タイトルにプラグインと書いておきながら「いきなりcolorschemeかよ」と、自分でも思いつつやっぱり毎日触れるvimだからこそ色にはこだわりたいですよね。
自分はずっとiceberg
にお世話になっています。好きすぎてiterm2もiceberg
にしています。
<githubページから画像を拝借させて頂きました>
青を基調としたこの落ち着いた色彩を見ると、開発で頭を悩ませた自分に対して「冷静になりなよ、落ち着いて作業しな」とVimから言われているような気分になります。
導入手順はとっても簡単!
$ cd ~/.vim/colors $ curl -O https://raw.githubusercontent.com/cocopon/iceberg.vim/master/colors/iceberg.vim
あとは.vimrc
に下記設定を加えれば完成です。
+ colorscheme iceberg
dein.vim
vimにプラグインを導入していくにつれて、.vimrc
が膨大な量になっていき管理しきれないというのはよくある事だと思います。
そこでVimを愛用しているエンジニアの皆様は恐らくプラグイン管理ツールを使用されている事だと思いますが、自分はdein.vim
を使用しています。
dein.vim
の特徴としてはプラグインのリストを記述したTOMLファイル
というものを用意する事で.vimrc
の記述量を抑える事が出来て、プラグイン管理が簡単だという点です。
さらに下記の記事を拝見すると、Vim自体の速度も早くなるとか、、、まさに良いことしかありませんね!
導入方法も非常にわかりやすく記述してくださっているので、ぜひ参考にしていただくのが良いかと思います。
deoplete
こちらは有名なVimのコード補完ツールですね。今までコード補完系のプラグインを入れていなかったのですが、最近になってようやくdeoplete
を導入して本当に開発が捗るようになりました。
お恥ずかしいですが、自分はタイポも多いのでコード補完さまさまといった状態です。
元々はneovim専用として開発されたのですが、Vim8にも対応しているということで導入することが出来ました。
ただしVimで導入する際はPython3でコンパイルされている必要があるということで、Vimを起動した後に
:echo has('python3')
で1
が表示されることを確認してください。もしくは
$ vim --version
で+python3
が含まれているかどうかでも確認することが可能です!
ここまできたらすぐにVim8に導入!と行きたいところですが、neovimと違ってvimの場合はroxma/nvim-yarp
とroxma/vim-hug-neovim-rpc
という2つのプラグインが必要になりますので、忘れずに入れておいておくださいね。
あとはShougo/deoplete.nvim
を導入すればOKです!
GitHub - Shougo/deoplete.nvim: Dark powered asynchronous completion framework for neovim/Vim8
ale
こちらはneovim、vim8で動作する非同期コードのプラグインで、Vimの入力をしながらコードチェックをする事ができるものです。
githubページはこちら。
こちらもインストールはいたって簡単で、プラグインの管理にdeinを使用されている方の場合はdein.toml
に
[[plugins]] repo = 'w0rp/ale'
と記述するのみとなっております。
サポートされているツールは一部抜粋をするだけでも
Languages | tools |
---|---|
HTML | alex,fecs,html-beautify,HTMLHint,prettiier,proselint,tidy,write-good |
CSS | csslint,fecs,prettier,stylelint |
JavaScript | eslint,fecs,flow,jscs,jslint....etc |
JSON | fixjson,jq,jsonlint,prettier |
Ruby | brakeman,rubocop,debriide,rails_best_practices,reek...etc |
SCSS | prettier,sass-lint,stylelint |
Go | bingo,go build, gofmt, goimports, golint, golangci-lint...etc |
Python | autopep8, flake8, pyflakes, pylint...etc |
Dart | dartanalyzer,dartfmt,language_server |
などなど、あげればキリがないくらい多くの言語とツールが用意されています。(詳細はgithubで確認お願いします)
またインストールするだけでもすぐに使用する事ができますが、各種設定を行うこともできます。
設定のヘルプなどを確認したいときはVimの操作中にhelp ale-options
やhelp ale-linter-options
で確認することも可能です。
ファイル保存時に自動で修正してほしい
下記コードを記載することで、ファイル保存時に自動でファイルの修正を行ってくれるようになります。
let g:ale_fix_on_save = 1
linterを指定したい
デフォルトでは編集中の言語でサポートされている全てのツールが実行される設定となっており、特定のツールのみを使用したいというときは
let g:ale_linters = { \ 'javascript': ['eslint'], \}
などなど、他にはステータスラインに警告やエラーを表示させたりなど多くの設定があるのでぜひ確認してみてください!
vim-fugitive
これはもうみなさん、おなじみと言っても過言ではないVimからGit操作を行う事ができるプラグインですね。
自分はインストールだけしていて、正直使った事がほとんどなかったのですが(意味ない)、最近になって重い腰を腰をあげるとあら不思議、本当に便利ですねこれ。
コマンド | 意味 |
---|---|
Gstatus | git statusを上部に表示 |
Gdiff | 直前のコミットとの差分を表示(git diff) |
Gread | 現在開いているファイルを直前のコミット状態で確認する |
Gwrite | 現在開いているファイルをgit add |
Gcommit | git commit |
Gblame | 現在開いているファイルの各行がどのコミットのものなのかを教えてくれる(git blame) |
Gread | 現在開いているファイルのコミット前の変更を全て取り消す |
まとめ
あまり数多くは紹介できませんでしたが、自分が最近になって使うようになったプラグインで便利だなぁと感じたものをご紹介させていただきました。
今回ご紹介させていただいたプラグインのそれぞれの最新Verは以下の通りとなっております!
プラグイン | バージョン |
---|---|
deoplete | 5.1 |
ale | 2.6.0 |
vim-fugitive | 3.1 |
最後に
dein
でプラグイン管理をするようになって、すごくvimライフが充実してきたように感じます。他にも普段からお世話になっているプラグインはたくさんあるので全てをご紹介する事はできませんでしたが、世の先輩Vimmerの皆さまはどんなプラグインを使っているのかなぁと気になって夜も眠れません。ぜひ教えていただけると嬉しいです(^ ^)
今回もブログを読んでいただきありがとうございました!