読者です 読者をやめる 読者になる 読者になる

大学生からの Web 開発

廃れない技術よ 我が身に

最近導入した vim プラグイン をまとめる

Rails Git Vim ツール

プラグインは入れたは良いも、導入したことやキーバインドをすぐに忘れるのでメモ。

最近入れたプラグイン一覧

fugitive.vim

Git のラッパープラグインvim から Git の操作ができる。

今までついついエディットを中止することを忘れてコミット粒度が大きすぎたり、内容がまとまってなかったりしたので、それを解消するために vim を開きながら Git を扱えるこのプラグインを入れた。

addcommitはもちろんdiff, blameなどだいたいのコマンドは使えるので、vim と git を使っている人はみんな入れたほうがいいプラグイン

インストール

NeoBundle 'tpope/vim-fugitive'

.vimrc

au FileType gitcommit nnoremap <silent> <buffer> <ESC><ESC> :q<CR>
au FileType gitcommit inoremap <silent> <buffer> <ESC><ESC> <ESC>:q<CR>
au FileType fugitiveblame nnoremap <silent> <buffer> <ESC><ESC> :q<CR>

コミット、ブレイムウインドウが Esc Esc で閉じる。好みで設定する。

使い方

  • :Gwrite
    • 編集中のファイルを git add
  • :Gcommit
    • git commit
  • :Gread
    • 編集中のファイルをコミット時の状態に戻す
    • 上書きされているわけではないので、戻す場合は:w
  • :Gstatus
    • git status
    • 現在の git の状態を確認する
    • ファイルにカーソルラインを合わせた状態で
      • -: add/resetの切り替え
      • D: diff 表示
      • Enter: ファイルの内容を表示
      • C: コミット
  • :Gdiff
    • 差分表示
    • 変更箇所でdp: その差分をgit add
  • :Gblame
    • :git blame
    • 見やすい
    • Enter: そのときのコミットのファイル状態の表示

参考

VimmerなGit使いはfugitive.vimを今すぐ入れたほうがいい - SELECT * FROM life;
fugitive.vim が便利すぎたのでメモ - 反省はしても後悔はしない

scss-syntax.vim

scss のシンタックスハイライトを行うプラグイン

インストール

NeoBundle 'JulesWang/css.vim' " vim のバージョンが 7.4 未満なら必要
NeoBundle 'cakebaker/scss-syntax.vim'

.vimrc

au BufRead,BufNewFile *.scss set filetype=scss.css

使い方

scss ファイルを開く

neomru.vim

Unite.vim の MRU (Most Recently Used) が外部化されていたので入れた。

最近使ったファイルを表示して開くことができるプラグイン。便利だから Unite を使っている人は入れたほうがいいと思う。

インストール

※ Unite.vim が入っていることが前提です

NeoBundle 'Shougo/neomru.vim'

.vimrc

nnoremap <leader>m :<C-u>Unite file_mru<CR>

これで <leader>m で開く

使い方

開く。

  • インサートモード
    • <C-n>: 候補を下へ移動
    • <C-p>: 候補を上へ移動
    • 入力で絞り込み
  • ノーマルモード
    • j/k で移動
  • Enter: 選択中のファイルを開く

※ <C-n> Ctrl + n, <C-p> Ctrl + p ってことです

vim-altercmd

既存の Ex コマンド(:wとか:qとか元からあるコマンド)を独自のものに置き換えられるプラグイン

今のところ後述の rails.vim のためだけに使っている。

インストール

" NeoBundle 'kana/vim-altercmd' オリジナル版
NeoBundle 'tyru/vim-altercmd' " フォーク版

オリジナルのkana版とtyru版の違い · tyru/vim-altercmd Wiki
オリジナル版の更新が止まっててフォーク版の方が改善されている

.vimrc

call altercmd#load() " コマンド設定より前に書く

使い方

.vimrc

" ※ ↓の設定はしちゃダメ
AlterCommand w Exp

これでwコマンドを実行するとExpコマンドが実行されるようになる。

rails.vim

これは最近入れたわけではないけど、使い始めたのが最近のため。 今まで rails プロジェクトのファイル移動は unite-rails を含めた unite でしかやってなかったけど こちらは ワンアクション で移動できて良い。どちらも使えば最強。

インストール

NeoBundle 'tpope/vim-rails'

使い方

  • :R(model/controller/view)
    • 対応した mvc に移動する
  • :A
    • テストとかに飛ぶ

詳しくは AdventCalendar - Vimで快適なRailsライフを - Qiita を見よう。

ユーザー定義のコマンドは大文字から始まらないといけないのだけれど、shift押すのが面倒くさいので さっきの vim-altercmd を使う。

.vimrc

autocmd User Rails AlterCommand r R
autocmd User Rails AlterCommand rc Rcontroller
autocmd User Rails AlterCommand rm Rmodel
autocmd User Rails AlterCommand rv Rview

autocmd User Railsrails プロジェクトでのみ動作するよってこと。rails.vim のおかげで rails を判別できている。 これで:r:Rが、:rc:Rcontrollerが、などが実行される。

まとめ

vimプラグイン入れて、これからにわくわくしている時が一番楽しい。

dotfiles を公開しているのでよかったら見てください。
karur4n/dotfiles