-
Notifications
You must be signed in to change notification settings - Fork 0
/
.vimrc
137 lines (118 loc) · 3.19 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
" Settings
"" visual
set number
set laststatus=2
set cursorline
set t_Co=256
syntax on
"" search
set hlsearch
set ignorecase
set smartcase
"" edit
set expandtab
set tabstop=2
set shiftwidth=2
set encoding=utf-8
set fileencodings=utf-8,iso-2022-jp
autocmd BufWritePre * :%s/\s\+$//ge
runtime macros/matchit.vim
"" move
set incsearch
set whichwrap=b,s,h,l,<,>,[,]
if has('mouse')
set mouse=a
endif
"" plugin related
let g:neocomplcache_enable_at_startup = 1
let g:ale_fixers = { 'ruby': ['rubocop'] }
let g:user_emmet_leader_key = '<C-t>'
" Key Mappers
"" move
inoremap <expr> <C-a> "\<Esc>I"
inoremap <expr> <C-e> "\<Esc>A"
nnoremap <expr> <C-j> "\<Esc>10j"
nnoremap <expr> <C-k> "\<Esc>10k"
nnoremap <expr> <C-h> "\<Esc>10h"
nnoremap <expr> <C-l> "\<Esc>10l"
vnoremap <expr> <C-j> "10j"
vnoremap <expr> <C-k> "10k"
vnoremap <expr> <C-h> "10h"
vnoremap <expr> <C-l> "10l"
inoremap <expr> ⇒ JumpEndOfBracket()
inoremap <expr> <TAB> pumvisible() ? "\<C-n>" : EscapeBraces()
"" complement
inoremap { {}<LEFT>
inoremap ( ()<LEFT>
inoremap < <><LEFT>
inoremap " ""<LEFT>
inoremap ' ''<LEFT>
inoremap [ []<LEFT>
inoremap <expr> % CreateErbSnippet()
imap <buffer> <expr><CR> pumvisible() ? neocomplcache#smart_close_popup() : IndentBracesDoEndwise()
"" operation
inoremap jk <Esc>l
inoremap jwq <Esc>:wq<CR>
inoremap jww <Esc>:w<CR>
inoremap jqq <Esc>:q!<CR>
nnoremap <Esc><Esc> :noh<CR>
nnoremap / /\v
nnoremap ? :%s///g<LEFT><LEFT>
vnoremap / <Esc>/\%V\v
set pastetoggle=<C-p>
" Functions
function! IndentBracesDoEndwise()
let nowletter = getline(".")[col(".")-1]
let beforeletter = getline(".")[col(".")-2]
if (nowletter == "}" && beforeletter == "{") || (nowletter == "]" && beforeletter == "[") || (nowletter == ")" && beforeletter == "(")
return "\n\n\<UP>\t"
else
return "\<CR>\<Plug>DiscretionaryEnd"
endif
endfunction
function! EscapeBraces()
let nowletter = getline(".")[col(".")-1]
let afterletter = getline(".")[col(".")]
if nowletter == ")" || nowletter == "\"" || nowletter == "'" || nowletter == ">" || nowletter == "]" || nowletter == "}"
return "\<RIGHT>"
elseif nowletter == "%" && afterletter == ">"
return "\<RIGHT>\<RIGHT>"
else
return "\t"
endif
endfunction
function! JumpEndOfBracket()
return "\<Esc>/\\v(\}|\\]|\\)|end)\<CR>\<Esc>:noh\<CR>A"
endfunction
function! CreateErbSnippet()
if getline(".")[col(".")-2] == '<'
return "%%\<LEFT>"
else
return '%'
endif
endfunction
" Neobundle Plugin Managements
set runtimepath+=~/.vim/bundle/neobundle.vim/
call neobundle#begin(expand('~/.vim/bundle/'))
NeoBundleFetch 'Shougo/neobundle.vim'
NeoBundle 'Shougo/neocomplcache'
NeoBundle 'w0ng/vim-hybrid'
NeoBundle 'mattn/emmet-vim'
NeoBundle 'vim-airline/vim-airline'
NeoBundle 'vim-airline/vim-airline-themes'
NeoBundle 'yamy1114ky/vim-endwise'
NeoBundle 'leafgarland/typescript-vim'
NeoBundle 'Quramy/tsuquyomi'
" NeoBundle 'w0rp/ale'
call neobundle#end()
filetype plugin indent on
NeoBundleCheck
" color schema (need to write neobundle#end())
set background=dark
colorscheme hybrid
highlight Normal ctermbg=none
highlight NonText ctermbg=none
highlight LineNr ctermbg=none
highlight LineNr ctermfg=darkgray
highlight Folded ctermbg=none
highlight EndOfBuffer ctermbg=none