今までEmacs使ってました。しかし、突然go-modeがinvalid rcs patch or internal error in go--apply-rcs-patch
エラーを吐きだしはじめ、同時にvim-go導入がめっちゃ楽なのを知り、浮気した次第です。今まで導入したプラグインを紹介します。(今もorg-modeでTODO管理にEmacs使ってます。)
プラグイン一覧
Plugin | 用途 |
---|---|
pathogen.vim | プラグインパッケージ管理。 $HOME/.vim/bundle以下に置いたプラグインを読み込む。 |
vim-go | :GoInstallBinaries Go開発ツール群のインストール。 :GoDoc struct、funcのドキュメント表示。 <c-]>で定義ジャンプ。 <c-t>でジャンプ元に戻る。 |
vim-ruby | <c-x> <c-o>でオムニ補完。 |
vim-rails | :Aと:Rで関連ファイルへ移動。 |
vim-tags | :TagsGenerate!でタグ生成。 <c-]>でタグジャンプ。 <c-t>でジャンプ元に戻る。 |
ctrlp.vim | <c-p>でファイル検索。 <c-v>でWindow垂直分割しつつファイルオープン。 |
syntastic | golintとgovetを保存時に実行、エラー部分を表示する。 |
Unite.vim | :Unite vimgrep ファイル内文字列検索。 |
unite-outline | :Unite outline 構造体・関数定義のアウトライン表示 |
unite-qf | :Unite qf quickfixリストへのジャンプ。 |
.vimrc
.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の記述では、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'を追加する必要があるようです。(参考)
let g:syntastic_go_checkers = ['govet', 'errcheck', 'go']
SSH(teraterm)利用時、ローカルマシンのクリップボードにヤンクした文字列をコピーする
Tera Termで [設定]->[その他の設定]->[制御シーケンス]->[リモートからのクリップボードアクセス]->[書き込みのみ] を設定する。
選択範囲をクリップボードにコピー
vもしくはVを使用し、コピーする範囲を選択します。
選択した状態で、:w !pbcopyと入力しEnterを押して下さい。
これでクリップボードにコピーされました。
ファイル全体をクリップボードにコピー
:%w !pbcopyと入力し、Enterを押して下さい。