-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvimrc
163 lines (144 loc) · 4.15 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
"---------------------
" normal
"---------------------
" 编码方式
set fencs=utf-8,cp936,sjis
set enc=utf-8
" 显示行号
set number
" 设置自动对齐
set autoindent
set cindent
" 当前行和列高亮
set cursorline
set cursorcolumn
" 底部状态栏
set laststatus=2
set statusline=%<%f\ %h%m%r%=[TYPE=%Y]\ [FORMAT=%{&ff}]\ [ENC=%{&enc}]\ [FENC=%{&fenc}]\ %-14.(%l,%c%V%)\ %P
" 高亮搜索
set incsearch
set hlsearch
nnoremap <silent> <esc><esc> :noh<cr>
" 设置搜索时忽略大小写
set ignorecase
" invisible character setting
" unicode for \u25b8 for `▸', \u00ac for `¬'
" set listchars=tab:▸\ ,eol:¬
set listchars=tab:▸\
set list
" 设置tab宽度
set tabstop=2
" 设置自动对齐空格数
set shiftwidth=2
" 设置退格键时可以删除4个空格
set smarttab
set softtabstop=2
" 将tab键自动转换为空格
set expandtab
" 设置在vim中可以使用鼠标
set mouse=a
" This means that you can have unwritten changes to a file and open a new file
" using :e, without being forced to write or undo your changes first.
set hidden
" show command menu, work great with snapmate-snippets
set wildmenu
" 设置取消备份 禁止临时文件的生成
set nobackup
set noswapfile
" 开启语法高亮功能
syntax enable
syntax on
" 指定配色方案为256色
"set t_Co=256
"color seoul256
set background=dark
colorscheme solarized
" 检测文件类型
filetype on
" 允许插件
filetype plugin on
" 启动智能补全
filetype plugin indent on
"-----------------
" extension
"-----------------
" 快捷键
" F3 search & replace current word under cursor
nnoremap <F3> /<c-r><c-w><cr>
" F4 toggle for paste, Insert Mode
set pastetoggle=<F4>
" toggle for copy & paste, Normal Mode
nnoremap <silent> <F4> :set nu!<CR>:set list!<CR>
" F5 toggle for ctags
nnoremap <f5> :!ctags -R<cr>
map <C-n> :NERDTreeToggle<CR>
nmap <F7> :NERDTreeToggle<CR>
let g:tagbar_autofocus=1
nmap <F8> :TagbarToggle<CR>
let g:Tlist_Ctags_Cmd='/usr/local/bin/ctags'
" edit mapping
let mapleader=','
map <leader>gr :topleft :split config/routes.rb<cr>
map <leader>gg :topleft 100 :split Gemfile<cr>
map <leader>gs :topleft :split db/schema.rb<cr>
inoremap <leader>rm :Emodel
nnoremap <leader>rm :Emodel
inoremap <leader>rc :Econtroller
nnoremap <leader>rc :Econtroller
inoremap <leader>rv :Eview
nnoremap <leader>rv :Eview
inoremap <leader>rh :Ehelper
nnoremap <leader>rh :Ehelper
inoremap <leader>rs :Espec
nnoremap <leader>rs :Espec
inoremap <leader>= <%= %><esc>hhi
inoremap <leader>- <% %><esc>hhi
nnoremap <leader>= i<%= %><esc>hhi
nnoremap <leader>- i<% %><esc>hhi
"复制到系统剪贴板
"vmap "+y :w !pbcopy<CR><CR>
vmap <leader>yy :w !pbcopy<CR><CR>
noremap <leader>h ^
noremap <leader>l $
nnoremap <c-j> <c-w>j
nnoremap <c-k> <c-w>k
nnoremap <c-h> <c-w>h
nnoremap <c-l> <c-w>l
" Some helpers to edit mode (http://vimcasts.org/e/14)
map <leader>ew :e <C-R>=expand("%:p:h") . "/" <CR>
map <leader>es :sp <C-R>=expand("%:p:h") . "/" <CR>
map <leader>ev :vsp <C-R>=expand("%:p:h") . "/" <CR>
map <leader>et :tabe <C-R>=expand("%:p:h") . "/" <CR>
" ctrlp
let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlP'
let g:ctrlp_working_path_mode = 'ra'
" tab键的自动完成现在会忽略这些
set wildignore+=tmp/*,*/tmp/*,*.so,*.swp,*.zip,*.o,*.obj,*.bak,*.exe,.git
" tabular
noremap <leader>a, :Tabularize /,<cr>
noremap <leader>a# :Tabularize /#<cr>
noremap <leader>a= :Tabularize /=<cr>
noremap <leader>a== :Tabularize /==<cr>
noremap <leader>a: :Tabularize /:<cr>
noremap <leader>a\| :Tabularize /\|<cr>
noremap <leader>a> :Tabularize /=><cr>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" OPEN FILES IN DIRECTORY OF CURRENT FILE
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
cnoremap %% <C-R>=expand('%:h').'/'<cr>
map <leader>e :edit %%
map <leader>v :view %%
" rename current file
function! RenameFile()
let old_name = expand('%')
let new_name = input('New file name: ', expand('%'))
if new_name != '' && new_name != old_name
exec ':saveas ' . new_name
exec ':silent !rm ' . old_name
redraw!
endif
endfunction
map <leader>n :call RenameFile()<cr>
" NeoBundle and bundles config
source ~/.vim/neobundles.vim