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


はじめに

これは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

動作



おわりに

結構簡単に新しいコマンドを作れるので
まだやったことない人、今のvimじゃ満足できなくなってる人

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