Edited at
Vim2Day 12

オリジナルのコマンドを作った話

More than 1 year has passed since last update.


はじめに

これはVim2 Advent Calendar 2017 12日目の記事です

普段は基本的に zsh + tmux + vimで全てが完結するよな環境で作業をしているのですが


コーディング中はできれば全てをvim上で色々出来るようになれば色々幸せになれるのでは

と思ってやってみたので今回記事にしたいと思います。


アドベントカレンダーに参加したくて必死でネタを絞った


やったこと

ふだんはRubyを触っている人間でRubocopを使う時にターミナルに戻るのが


めんどくさかったのでvimscriptで今開いてるファイルへ実行できればいいなって感じで作りました

書いたコード GitHub


main.vim

: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

スクリーンショット 2017-12-05 14.17.02.png


スクリーンショット 2017-12-05 14.16.15.png


おわりに

結構簡単に新しいコマンドを作れるので

まだやったことない人、今のvimじゃ満足できなくなってる人


ぼくのかんがえたさいきょうのvimをドンドン作ってみてください