vimを使い始めて入れたplugin/設定

今までEmacs使ってました。しかし、突然go-modeが`invalid rcs patch or internal error in go--apply-rcs-patch`エラーを吐きだしはじめ、同時にvim-go導入がめっちゃ楽なのを知り、浮気した次第です。今まで導入したプラグインを紹介します。（今もorg-modeでTODO管理にEmacs使ってます。）

# プラグイン一覧

| Plugin       | 用途|
|:-----------  |:------------|
| [pathogen.vim](https://github.com/tpope/vim-pathogen) |プラグインパッケージ管理。 <br> $HOME/.vim/bundle以下に置いたプラグインを読み込む。|
| [vim-go](https://github.com/fatih/vim-go) |:GoInstallBinaries Go開発ツール群のインストール。<br>:GoDoc struct、funcのドキュメント表示。<br>\<c-]>で定義ジャンプ。<br>\<c-t>でジャンプ元に戻る。|
| vim-ruby |\<c-x> \<c-o>でオムニ補完。|
| vim-rails | :Aと:Rで関連ファイルへ移動。|
| vim-tags |:TagsGenerate!でタグ生成。<br>\<c-]>でタグジャンプ。 <br>\<c-t>でジャンプ元に戻る。|
| [ctrlp.vim](https://github.com/ctrlpvim/ctrlp.vim) | \<c-p>でファイル検索。<br>\<c-v>でWindow垂直分割しつつファイルオープン。 ||
|[syntastic](https://github.com/vim-syntastic/syntastic)|golintとgovetを保存時に実行、エラー部分を表示する。|
|[Unite.vim](https://github.com/Shougo/unite.vim)|:Unite vimgrep　ファイル内文字列検索。|
|[unite-outline](https://github.com/Shougo/unite-outline)|:Unite outline 構造体・関数定義のアウトライン表示|
|[unite-qf](hhttps://github.com/sgur/unite-qf)|:Unite qf quickfixリストへのジャンプ。|

# .vimrc

``` vim:.vimrc
execute pathogen#infect()

" Set leader command for custom keybind
let mapleader = "\<Space>"

" Unite keybind
nnoremap <leader>g :<C-u>Unite -start-insert vimgrep<CR>
nnoremap <leader>o :<C-u>Unite outline<CR>
nnoremap <leader>q :<C-u>Unite qf locationlist<CR>

" share clipboard. requireies clipboard 
set clipboard+=unnamed
" delete key doesn't work?
set backspace=indent,eol,start

" vim basic configurations
syntax on
filetype plugin indent on
colorscheme desert

set number
set ruler
set cursorline

" toggle paste mode and nopaste mode 
" to enter insert(paste) mode, use :a!
autocmd InsertLeave * set nopaste

" syntastic configurations
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0

" vim-go configurations
let g:go_fmt_command = "goimports"
let g:vim_tags_ctags_binary = "/usr/local/Cellar/ctags/5.8_1/bin/ctags"
let g:syntastic_go_checkers = ['golint', 'govet', 'go']
let g:go_list_type = "quickfix"

" CtrlP configurations
let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlPMixed'

set wildignore+=*/tmp/*,*.so,*.swp,*.zip
let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$'
```

## NOTE: vim-goのsyntastic設定はREADMEの記載に従わないほうが良いかも
2016/12/19時点
[vim-go](https://github.com/fatih/vim-go)の記述では、syntasticの設定は

>```
>let g:syntastic_go_checkers = ['golint', 'govet', >'errcheck']
>let g:syntastic_mode_map = { 'mode': 'active', >'passive_filetypes': ['go'] }
>```

と記載されているが、下記のように、g:syntastic_mode_mapの設定は不要で、g:syntastic_go_checkersに'go'を追加する必要があるようです。([参考](https://github.com/fatih/vim-go/issues/886))

```
let g:syntastic_go_checkers = ['govet', 'errcheck', 'go']
```

## SSH(teraterm)利用時、ローカルマシンのクリップボードにヤンクした文字列をコピーする

> Tera Termで [設定]->[その他の設定]->[制御シーケンス]->[リモートからのクリップボードアクセス]->[書き込みのみ] を設定する。
選択範囲をクリップボードにコピー
vもしくはVを使用し、コピーする範囲を選択します。
選択した状態で、:w !pbcopyと入力しEnterを押して下さい。
　　これでクリップボードにコピーされました。
ファイル全体をクリップボードにコピー
:%w !pbcopyと入力し、Enterを押して下さい。


[引用元] http://blue-red.ddo.jp/~ao/wiki/wiki.cgi?page=%A5%B3%A5%DE%A5%F3%A5%C9%A4%AB%A4%E9TeraTerm%A4%CE%A5%AF%A5%EA%A5%C3%A5%D7%A5%DC%A1%BC%A5%C9%A4%D8%A5%B3%A5%D4%A1%BC

# 気になってるプラグイン
* [zen-coding](https://github.com/mattn/zencoding-vim)