Help us understand the problem. What is going on with this article?

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

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をドンドン作ってみてください

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away