はじめに
これはVim2 Advent Calendar 2017 12日目の記事です
普段は基本的に zsh + tmux + vimで全てが完結するよな環境で作業をしているのですが
コーディング中はできれば全てをvim上で色々出来るようになれば色々幸せになれるのでは
と思ってやってみたので今回記事にしたいと思います。
アドベントカレンダーに参加したくて必死でネタを絞った
やったこと
ふだんはRubyを触っている人間でRubocopを使う時にターミナルに戻るのが
めんどくさかったのでvimscriptで今開いてるファイルへ実行できればいいなって感じで作りました
書いたコード GitHub
:command Rubocop call Rubocop()
function Rubocop()
let fileName = expand("%:p")
if fileName =~ '.rb$'
let rbc = 'rubocop '
let log = system(rbc.fileName)
echo log
else
echo "Not Ruby file"
endif
endfunction
1行目でコマンドを定義する
:command コマンド名 実行するコマンド or 関数
コマンド名は大文字から始める
関数の中身
let filename = expand("%:p")
今開いてるファイルのフルパスを取得
.rbの拡張子かを判別して真だった場合はrubocopを実行して結果を表示する
vimrcで書いたmain.vimを読み込ませる
:source /ファイルの/ディレクトリ/rubocop/main.vim
動作
![スクリーンショット 2017-12-05 14.16.19.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F98200%2F60db1821-a359-0bbb-f9b9-e20e05236aff.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=d57ae5992473044299e4ed84cbb56e37)
![スクリーンショット 2017-12-05 14.17.02.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F98200%2F28d5dfbf-e74b-4911-ffe8-9931e734b0fb.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=20160c51cccfec7cb116902648f8c9a6)
![スクリーンショット 2017-12-05 14.16.15.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F98200%2Fa6cef291-0d4c-6445-68b6-f2b55e1e0f8c.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=edf245ff134a0e0e6cdfe2b070343a35)
おわりに
結構簡単に新しいコマンドを作れるので
まだやったことない人、今のvimじゃ満足できなくなってる人
ぼくのかんがえたさいきょうのvimをドンドン作ってみてください