-
Notifications
You must be signed in to change notification settings - Fork 0
/
.vimrc
227 lines (196 loc) · 8.97 KB
/
.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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
set encoding=utf-8
scriptencoding utf-8
" ↑1行目は読み込み時の文字コードの設定
" ↑2行目はVim Script内でマルチバイトを使う場合の設定
" Vim scritptにvimrcも含まれるので、日本語でコメントを書く場合は先頭にこの設定が必要になる
"==============================================="
" プラグイン管理(NeoBundle)
"==============================================="
if has('vim_starting')
" 初回起動時のみruntimepathにNeoBundleのパスを指定する
set runtimepath+=~/.vim/bundle/neobundle.vim/
" NeoBundleが未インストールであればgit cloneする
if !isdirectory(expand("~/.vim/bundle/neobundle.vim/"))
echo "install NeoBundole..."
:call system("git clone git://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim")
endif
endif
call neobundle#begin(expand('~/.vim/bundle'))
" インストールするプラグインを以下に記述
" NeoBundle自身を管理
NeoBundleFetch 'Shougo/neobundle.vim'
" カラースキームmolokai
NeoBundle 'tomasr/molokai'
" ステータスラインの表示内容強化(lightline.vim)
NeoBundle 'itchyny/lightline.vim'
" 末尾の全角と半角の空白文字を赤くハイライト
NeoBundle 'bronson/vim-trailing-whitespace'
" インデントの可視化
NeoBundle 'Yggdroot/indentLine'
" Unite
NeoBundle 'Shougo/unite.vim'
" NerdTree
NeoBundle 'scrooloose/nerdtree'
" VimSurround
NeoBundle 'tpope/vim-surround'
" VimScala
NeoBundle 'derekwyatt/vim-scala'
call neobundle#end()
" ファイルタイプ別のプラグイン/インデントを有効にする
filetype plugin indent on
" 未インストールのプラグインがあるかどうかチェックする
NeoBundleCheck
"==============================================="
" Leaderはスペースキー
"==============================================="
let mapleader="\<Space>"
"==============================================="
" 文字コード
"==============================================="
set fileencoding=utf-8 " 保存時の文字コード
set fileencodings=ucs-boms,utf-8,euc-jp,cp932 " 読み込み時の文字コードの自動判別
set fileformats=unix,dos,mac " 改行コードの自動判別
set ambiwidth=double " □や○が崩れる問題を解決
"==============================================="
" タブ・インデント
"==============================================="
set expandtab " タブをスペースに置き換える
set tabstop=2 " 画面上でタブが占める幅
set softtabstop=2 " 連続した空白に対してタブキーやバックスペースキーでカーソルが動く幅
set autoindent " 改行でインデントを引き継ぐ
set smartindent " インデントを文脈に合わせて増減させる
set shiftwidth=2 " 自動インデントの幅
"==============================================="
" 文字列検索
"==============================================="
set incsearch " インクリメンタルサーチ. 1文字入力毎に検索を行う
set ignorecase " 検索パターンに大文字小文字を区別しない
set smartcase " 検索パターンに大文字を含んでいたら大文字小文字を区別する
set hlsearch " 検索結果をハイライト
" ビジュアルモードで選択した範囲を「*」で検索可能にする
vnoremap * "zy:let @/ = @z<CR>n
" ESCキー2度押しでハイライトの切り替え
nnoremap <silent><Esc><Esc> :<C-u>set nohlsearch!<CR>
"==============================================="
" カーソル
"==============================================="
set whichwrap=b,s,h,l,<,>,[,],~" カーソルの左右移動で行末から次の行の行頭へ移動する
set number " 行番号を表示させる
set cursorline " カーソルラインをハイライト
" カーソル行全体をハイライト
highlight CursorLine cterm=NONE ctermfg=white ctermbg=black gui=NONE guifg=white guibg=black
" 行が折り返し表示されていた場合、行単位ではなく表示行単位でカーソルを移動する
nnoremap j gj
nnoremap k gk
nnoremap <down> gj
nnoremap <up> gk
set display=lastline " 最終行で表示できない文字を出来るだけ表示する
"==============================================="
" 括弧・タグジャンプ
"==============================================="
set showmatch " 括弧の対応関係を一瞬表示する
source $VIMRUNTIME/macros/matchit.vim " Vimの%を拡張する
"==============================================="
" コマンド補完
"==============================================="
set wildmenu " コマンドモードの補完
set history=5000 " 保存するコマンドの履歴数
"==============================================="
" マウスの有効化
"==============================================="
if has('mouse')
set mouse=a
if has('mouse_sgr')
set ttymouse=sgr
elseif v:version > 703 || v:version is 703 && has('patch632')
set ttymouse=sgr
else
set ttymouse=xterm2
endif
endif
"==============================================="
" スワップ・バックアップファイル
"==============================================="
set noswapfile " スワップファイルを作成しない
set nobackup " バックアップファイルを作成しない
"==============================================="
" キー入れ替え
"==============================================="
" ; <-> : (ノーマルモードのみ)
noremap ; :
noremap : ;
"==============================================="
" タブページ切り替え
"==============================================="
nnoremap <Leader>[ :<C-u>tabprev<CR>
nnoremap <Leader>] :<C-u>tabnext<CR>
"==============================================="
" プラグイン設定
"==============================================="
"------------------------------------------------
" unite.vim
"------------------------------------------------
"インサートモードで開始
let g:unite_enable_start_insert = 1
"最近開いたファイル履歴の保存数
let g:unite_source_file_mru_limit = 50
"file_mruの表示フォーマットを指定。空にすると表示スピードが高速化される
let g:unite_source_file_mru_filename_format = ''
"絞り込みで曖昧検索をする
call unite#filters#matcher_default#use(['matcher_fuzzy'])
call unite#filters#sorter_default#use(['sorter_rank'])
"キーバインド
"現在開いているファイルのディレクトリ下のファイル一覧。
nnoremap <Leader>f :<C-u>Unite -buffer-name=files file_rec/async<CR>
"バッファ一覧
nnoremap <Leader>b :<C-u>Unite buffer<CR>
"最近使用したファイル一覧
"nnoremap <Leader>m :<C-u>Unite file_mru<CR>
"ブックマーク一覧
"nnoremap <Leader>c :<C-u>Unite bookmark<CR>
"ブックマークに追加
"nnoremap <Leader>a :<C-u>UniteBookmarkAdd<CR>
"uniteを開いている間のキーマッピング
autocmd FileType unite call s:unite_my_settings()
function! s:unite_my_settings()"{{{
"ESCでuniteを終了
nmap <buffer> <ESC> <Plug>(unite_exit)
"挿入モードのときjjでノーマルモードに移動
imap <buffer> jj <Plug>(unite_insert_leave)
"挿入モードのときctrl+wでバックスラッシュも削除
imap <buffer> <C-w> <Plug>(unite_delete_backward_path)
"ctrl+jで縦に分割して開く
nnoremap <silent> <buffer> <expr> <C-j> unite#do_action('split')
inoremap <silent> <buffer> <expr> <C-j> unite#do_action('split')
"ctrl+jで横に分割して開く
nnoremap <silent> <buffer> <expr> <C-l> unite#do_action('vsplit')
inoremap <silent> <buffer> <expr> <C-l> unite#do_action('vsplit')
"ctrl+oでその場所に開く
nnoremap <silent> <buffer> <expr> <C-o> unite#do_action('open')
inoremap <silent> <buffer> <expr> <C-o> unite#do_action('open')
"ctrl+tで新しいタブで開く
nnoremap <silent> <buffer> <expr> <C-t> unite#do_action('tabopen')
inoremap <silent> <buffer> <expr> <C-t> unite#do_action('tabopen')
endfunction"}}}
"-----------------------------------------------"
" colorschemeの設定
"-----------------------------------------------"
if neobundle#is_installed('molokai') " molokaiがインストールされていれば
autocmd ColorScheme * highlight Comment cterm=bold ctermfg=250 guifg=#bcbcbc
autocmd ColorScheme * highlight Delimiter ctermfg=250 guifg=#bcbcbc
colorscheme molokai " カラースキームにmolokaiを設定する
endif
" SyntaxInfoコマンドを読み込む(カーソル位置の書式情報を出力する)
source ~/.vim/syntax-info.vim
"-----------------------------------------------"
" ステータスラインの表示内容強化(lightline.vim)
"-----------------------------------------------"
set laststatus=2
set showmode " 現在モードを表示
set showcmd " 打ったコマンドをステータスラインの下に表示
set ruler " ステータスラインの右側にカーソルの現在位置を表示する
"-----------------------------------------------"
" NERDTree
"-----------------------------------------------"
nnoremap <silent> <Leader>n :<C-u>NERDTreeToggle<CR> " NERDTreeを開く
let g:NERDTreeShowHidden=1 " ドットで始まるファイル/ディレクトリを表示