最近iTermを使ってgitやらファイル整理(開発環境の中の)とかCUIで操作することが多いので、Sublime textとiTermの往復に若干疲れてきたので、もうvimに乗り換えるかと思って、使い始めてみることにしました。
感想は控えめに言って「住めば都」で、慣れればすこぶる快適です。周りのエンジニアさんとかVimmerの方から「慣れると「なんでもVimライクに操作したくなる」って言うのが少し分かる気がします。(だがブラウザとかまでVimライクにしようとかまではまだ思ってないです)
導入にあたって、vimでhtmlとかcssとかsassとかコーディング、あとMarkdownとかでドキュメントをまとめたりするので、その辺を快適に操作出来るようにいろいろ設定したので、まとめてみます。自分的忘備録。
基本的な設定とか
フロントエンドのコーディングがメインですが、仕事のプロジェクトはRuby on Railsを使っていたりするので、タブをスペース2つに変換するためのスクリプトとかを入れてあります。あとは先輩が教えてくれた、全角スペースのハイライトとか……基本的に目指したのはSublime textの表示に近い感じを目指しました。
"------------------------------------
" default setting
"------------------------------------
syntax on
filetype on
filetype plugin on
set nobackup
set incsearch
set showmatch
set number
set ruler
set list
set hlsearch
set noundofile
set ts=2 sw=2 expandtab
set backspace=indent,eol,start
"------------------------------------
" file setting
"------------------------------------
set fileformats=unix,dos,mac
if has("autocmd")
" 改行時にコメントしない
" 改行時に勝手にインデントしない
autocmd FileType * setlocal formatoptions-=ro noautoindent nosmartindent
" ファイル種別による個別設定(初期設定ではexpandtabなのでその設定はいれない)
" ts = tabstop, sts = softtabstop, sw = shiftwidth, tw = textwidth
" ft = filetype
autocmd FileType html,xhtml,css,javascript,yaml,ruby,coffee setlocal ts=2 sts=2 sw=2
" autocmd FileType python setlocal ts=4 sts=4 sw=4
" ファイルを開いた時、読み込んだ時にファイルタイプを設定する
autocmd BufNewFile,BufRead *.js setlocal ft=javascript
autocmd BufNewFile,BufRead *.ejs setlocal ft=html
autocmd BufNewFile,BufRead *.py setlocal ft=python
autocmd BufNewFile,BufRead *.rb setlocal ft=ruby
autocmd BufNewFile,BufRead Gemfile setlocal ft=ruby
autocmd BufNewFile,BufRead *.coffee setlocal ft=coffee
autocmd BufNewFile,BufRead *.ts setlocal ft=typescript
autocmd BufNewFile,BufRead *.md setlocal ft=markdown
autocmd BufNewFile,BufRead *.jade setlocal ft=markdown
autocmd BufNewFile,BufRead *.gyp setlocal ft=json
autocmd BufNewFile,BufRead *.cson setlocal ft=json
autocmd BufNewFile,BufRead *.yml setlocal ft=yaml
autocmd BufNewFile,BufRead *.yaml setlocal ft=yaml
" ctagsファイルの設定ファイル
" autocmd BufNewFile,BufRead *.rb set tags+=;$HOME/.ruby.ctags;
" autocmd BufNewFile,BufRead *.js set tags+=;$HOME/.javascript.ctags;
endif
他にも色々設定してますが、ちょっと長いんで……githubで公開してるので、リンク貼っておきます。
vnc250l/vim
プラグイン管理ツール
dein.vim
最初NeoBundleを入れようとしてたんですが、公式で「Dein.vimに移行したよ」的なお触れが出ていたのと、Vimmer先輩方に進められたのもあって、こいつを使うことにしました。最初はよく分からず、しかもまだまだドキュメントが少ないからか、なかなか自分のほしい情報が見当たらなくて四苦八苦してましたが、慣れてくるととても便利で、更にNeoBundleやVandleのプラグインもそのまま使えるみたいなので、とりあえずメジャーものから、自分が必要そうなものまでを一通りインストールしてみました。
基本的にインストールで順は公式に書いてあることを素直にやっていけばすんなりインストールすることが出来ます。
一応、補足として説明すると、
//.vimrcという名前のvimの設定ファイルがない場合は新規で作ってください。
set runtimepath^={path to dein.vim directory} //ここの「path to dein.vim directory」というところは、Installer.shでインストールした任意のdein.vimのディレクトリのパスを書く(フルパス)
call dein#begin(expand('~/.cache/dein')) //dein.vimのプラグインなどのディレクトリをフルパスで書く(デフォルトは.cacheらしい。私は知らなかったんで自分でテキトーにdeinというディレクトリを作って、そこに突っ込んでます)
call dein#add({path to dein.vim directory}) //dein.vimの場所を書く。
//ここからしたにはインストールしたいdein.vimのプラグインを決まった書式でズラーッと書いていく。
call dein#add('プラグイン名') //これが書式
call dein#add('Shougo/neosnippet.vim')$
call dein#add('Shougo/unite.vim')$
call dein#add('Shougo/neosnippet-snippets')$
call dein#add('mattn/emmet-vim')$
call dein#add('powerline/powerline', {'rtp': 'powerline/bindings/vim/'})
ざっとこんな感じです。
deinでインストールしたプラグインリスト
- unite.vim
- neosnippet.vim
- neosnippet-snippets
- emmet-vim
- CSScomb
- vim-surround
- scss-syntax
- sasscompile
- vim-css3-syntax
- vim-javascript-syntax
- powerline
- saerch-parent.vim
- vimshell
わしわし入れてますが、この中でも一番使ってる頻度が高いのはやっぱりemmet-vimパイセンですかね。
あとunite.vimとpowerlineは入れたほうが絶対便利ですし、見た目が少しかっこいい感じになるので作業しててテンションが上がる(気がする)。
【補足】powerlineちょっと詰まったこと。
powerlineはvimのモード表示とかバッファ表示を見やすくしてくれるためのプラグインです。ただ、これを入れただけだと動かない。いかのように設定すると、なかなか見やすい感じになってくれます。
"------------------------------------
" powerline setting
"------------------------------------
set laststatus=2
set matchtime=1
set display=lastline
あとは公式のインストール手順にもありますが、powerlineを使う時は必ず配布されている専用フォントをインストールする必要があります。これがないと表示されないので注意。
deinでインストールしたカラースキーム
- jellybeans.vim
- vim-hybrid
- twilight
- vim-lucius
- vim-railscats-theme
- vim-color-solarized
- molokai
- Wombat
- rdark
- badwolf
色々試してみましたけど、やっぱりmolokaiが一番しっくり来ました。
これから
ひとまずという考えで、vimrcに設定を突っ込んでいたら、かなりカオスになってきたので、折を見て外部ファイルとかにしてカラースキーム、プラグイン、基本的な設定とかで整理整頓していきたいです……めっちゃ見づらい。