9. vim各種プラグイン
まずはvundle導入
1
$ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
.vimrc を編集
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
"viとの互換性OFF
set nocompatible
"ファイル形式の検出を無効にする
filetype off
"Vundleを初期化して
"Vundle自身もVundleで管理
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
Bundle 'gmarik/vundle'
"プラグイン各種
Bundle 'Shougo/neocomplcache'
Bundle 'thinca/vim-ref'
"Bundle 'thinca/vim-quickrun'
"Bundle 'tpope/vim-rails' "rails.vim
"ファイル形式検出、プラグイン、インデントをON
filetype plugin indent on
プラグイン各種のインストールを行う
:BundleInstall
インストールは以上で終了、引き続き設定を行う
9-1. neocomplcache設定
設定ファイル(~/.vim/bundle/neocomplcache/doc/neocomplcache.txt)よりコピペ
以下の記述を.vimrcへ追加する
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
----------------------------------------
"*** for neocomplcache ***
" Disable AutoComplPop.
let g:acp_enableAtStartup = 0
" Use neocomplcache.
let g:neocomplcache_enable_at_startup = 1
" Use smartcase.
let g:neocomplcache_enable_smart_case = 1
" Use camel case completion.
let g:neocomplcache_enable_camel_case_completion = 1
" Use underbar completion.
let g:neocomplcache_enable_underbar_completion = 1
" Set minimum syntax keyword length.
let g:neocomplcache_min_syntax_length = 3
let g:neocomplcache_lock_buffer_name_pattern = '\*ku\*'
" Define dictionary.
let g:neocomplcache_dictionary_filetype_lists = {
\ 'default' : '',
\ 'vimshell' : $HOME.'/.vimshell_hist',
\ 'scheme' : $HOME.'/.gosh_completions'
\ }
" Define keyword.
if !exists('g:neocomplcache_keyword_patterns')
let g:neocomplcache_keyword_patterns = {}
endif
let g:neocomplcache_keyword_patterns['default'] = '\h\w*'
" Plugin key-mappings.
inoremap <expr><C-g> neocomplcache#undo_completion()
inoremap <expr><C-l> neocomplcache#complete_common_string()
" Recommended key-mappings.
" <CR>: close popup and save indent.
inoremap <expr><CR> neocomplcache#close_popup() . "\<CR>"
" <TAB>: completion.
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
" <C-h>, <BS>: close popup and delete backword char.
inoremap <expr><C-h> neocomplcache#smart_close_popup()."\<C-h>"
inoremap <expr><BS> neocomplcache#smart_close_popup()."\<C-h>"
inoremap <expr><C-y> neocomplcache#close_popup()
inoremap <expr><C-e> neocomplcache#cancel_popup()
" For cursor moving in insert mode(Not recommended)
"inoremap <expr><Left> neocomplcache#close_popup() . "\<Left>"
"inoremap <expr><Right> neocomplcache#close_popup() . "\<Right>"
"inoremap <expr><Up> neocomplcache#close_popup() . "\<Up>"
"inoremap <expr><Down> neocomplcache#close_popup() . "\<Down>"
" Or set this.
"let g:neocomplcache_enable_cursor_hold_i = 1
"*** for neocomplcache ***
function InsertTabWrapper()
if pumvisible()
return "\<c-n>"
endif
let col = col('.') - 1
if !col || getline('.')[col - 1] !~ '\k\|<\|/'
return "\<tab>"
elseif exists('&omnifunc') && &omnifunc == ''
return "\<c-n>"
else
return "\<c-x>\<c-o>"
endif
endfunction
inoremap <tab> <c-r>=InsertTabWrapper()<cr>
9-2. vim-ref設定
vimでw3mのPATHを通すため、以下の記述を.vimrcへ追加する
1
let $PATH = $PATH . ':/usr/bin/w3m'
vim上で「:echo $PATH」として、vimでw3mのPATHが通っているか確認する
次にrubyリファレンスの取得と展開を行う
1
2
3
4
$ cd ~/Documents/Reference
$ wget http://doc.okkez.net/archives/201106/ruby-refm-1.9.2-dynamic-20110629.tar.gz
$ tar zxvf ruby-refm-1.9.2-dynamic-20110629.tar.gz
$ mv ruby-refm-1.9.2-dynamic-20110629 rubyrefm
refeファイル(コマンド)を作成する
1
$ vim /usr/local/bin/refe
1
2
3
#!/bin/sh
exec ruby -Ke -I ~/Documents/Reference/rubyrefm/bitclust/lib ~/Documents/Reference/rubyrefm/bitclust/bin/refe.rb -d ~/Documents/Reference/rubyrefm/db-1_9_2 "$@"
refeファイル(コマンド)のパーミッションを変更する
1
$ sudo chmod 755 /usr/local/bin/refe
以上でrubyのマニュアルを引きことが可能となる
参考:
http://d.hatena.ne.jp/holypp/20110703/1309711799
http://d.hatena.ne.jp/holypp/20110515/1305443997
http://d.hatena.ne.jp/diffshare/20111118/1321606902
http://iiidevelop.blogspot.jp/2011/07/vimvundle.html
http://slumbers99.blogspot.jp/2012/02/vim-vundle.html
http://blog.blueblack.net/item_133
http://masterka.seesaa.net/article/161781923.html
vim設定補追(2013/08/02)
上記プラグイン関連の設定以外の設定を以下に記す。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
"行番号設定
set number
"タブ文字、行末など不可視文字を表示する
set list
"インクリメンタルサーチON
set incsearch
"閉じ括弧が入力されたとき、対応する括弧を表示する
set showmatch
"検索時に大文字を含んでいたら大/小を区別
set smartcase
"シフト移動幅
set shiftwidth=2
"Insertモードで: <Tab> を挿入するのに、適切な数の空白を使う
set expandtab
"新しい行を作ったときに高度な自動インデントを行う
set smartindent
"行頭の余白内で Tab を打ち込むと、'shiftwidth' の数だけインデントする
set smarttab
"ファイル内の <Tab> が対応する空白の数
"set tabstop=4
"カーソルを行頭、行末で止まらないようにする
"set whichwrap=b,s,h,l,<,>,[,]
"検索をファイルの先頭へループしない
set nowrapscan
"色設定ON
syntax on
set background=dark
"日本語全角記号を全角として扱うよう設定
set ambiwidth=double