-
Notifications
You must be signed in to change notification settings - Fork 0
/
vimrc
193 lines (141 loc) · 5.29 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
noremap <C-a> gg0vG$
noremap <C-h> ^
noremap <C-l> $
noremap <C-s> <cmd>:w<cr>
noremap `` ciw``<Esc>hp
vnoremap `` s``<Esc>hp
set scrolloff=8
set sidescrolloff=8
"----------------------------------------------------------------------
" 默认缩进模式
"----------------------------------------------------------------------
" 设置缩进宽度
set sw=2
" 设置 TAB 宽度
set ts=2
" 禁止展开 tab (noexpandtab)
set noet
"----------------------------------------------------------------------
" 基础设置
"----------------------------------------------------------------------
" 禁用 vi 兼容模式
set nocompatible
" 设置 Backspace 键模式
set bs=eol,start,indent
" 自动缩进
set autoindent
" Windows 禁用 ALT 操作菜单(使得 ALT 可以用到 Vim里)
set winaltkeys=no
" 关闭自动换行
set nowrap
" 打开功能键超时检测(终端下功能键为一串 ESC 开头的字符串)
set ttimeout
" 功能键超时检测 50 毫秒
set ttimeoutlen=50
" 显示光标位置
set ruler
"----------------------------------------------------------------------
" 搜索设置
"----------------------------------------------------------------------
" 搜索时忽略大小写
set ignorecase
" 智能搜索大小写判断,默认忽略大小写,除非搜索内容包含大写字母
set smartcase
" 查找输入时动态增量显示查找结果
set incsearch
"----------------------------------------------------------------------
" 编码设置
"----------------------------------------------------------------------
if has('multi_byte')
" 内部工作编码
set encoding=utf-8
" 文件默认编码
set fileencoding=utf-8
" 打开文件时自动尝试下面顺序的编码
set fileencodings=ucs-bom,utf-8,gbk,gb18030,big5,euc-jp,latin1
endif
"----------------------------------------------------------------------
" 其他设置
"----------------------------------------------------------------------
" 显示匹配的括号
set showmatch
" 显示最后一行
set display=lastline
" 允许下方显示目录
set wildmenu
" 错误格式
set errorformat+=[%f:%l]\ ->\ %m,[%f:%l]:%m
" 设置分隔符可视
set listchars=tab:\|\ ,trail:.,extends:>,precedes:<
" 如遇Unicode值大于255的文本,不必等到空格再折行
set formatoptions+=m
" 合并两行中文时,不在中间加空格
set formatoptions+=B
" 文件换行符,默认使用 unix 换行符
set ffs=unix,dos,mac
"----------------------------------------------------------------------
" 文件搜索和补全时忽略下面扩展名
"----------------------------------------------------------------------
set suffixes=.bak,~,.o,.h,.info,.swp,.obj,.pyc,.pyo,.egg-info,.class
set wildignore=*.o,*.obj,*~,*.exe,*.a,*.pdb,*.lib "stuff to ignore when tab completing
set wildignore+=*.so,*.dll,*.swp,*.egg,*.jar,*.class,*.pyc,*.pyo,*.bin,*.dex
set wildignore+=*.zip,*.7z,*.rar,*.gz,*.tar,*.gzip,*.bz2,*.tgz,*.xz " MacOSX/Linux
set wildignore+=*DS_Store*,*.ipch
set wildignore+=*.gem
set wildignore+=*.png,*.jpg,*.gif,*.bmp,*.tga,*.pcx,*.ppm,*.img,*.iso
set wildignore+=*.so,*.swp,*.zip,*/.Trash/**,*.pdf,*.dmg,*/.rbenv/**
set wildignore+=*/.nx/**,*.app,*.git,.git
set wildignore+=*.wav,*.mp3,*.ogg,*.pcm
set wildignore+=*.mht,*.suo,*.sdf,*.jnlp
set wildignore+=*.chm,*.epub,*.pdf,*.mobi,*.ttf
set wildignore+=*.mp4,*.avi,*.flv,*.mov,*.mkv,*.swf,*.swc
set wildignore+=*.ppt,*.pptx,*.docx,*.xlt,*.xls,*.xlsx,*.odt,*.wps
set wildignore+=*.msi,*.crx,*.deb,*.vfd,*.apk,*.ipa,*.bin,*.msu
set wildignore+=*.gba,*.sfc,*.078,*.nds,*.smd,*.smc
set wildignore+=*.linux2,*.win32,*.darwin,*.freebsd,*.linux,*.android
"----------------------------------------------------------------------
" 备份设置
"----------------------------------------------------------------------
" 禁用备份
set nobackup
" 禁用交换文件
set noswapfile
" 禁用 undo文件
set noundofile
"----------------------------------------------------------------------
" 显示设置
"----------------------------------------------------------------------
" syntax highlight
syntax on
set colorcolumn=80
" 总是显示状态栏
set laststatus=2
" 总是显示行号
set number
" 显示相对行号(会有性能问题)
"set relativenumber
" 总是显示标签栏
set showtabline=2
" 右下角显示命令
set showcmd
" 插入模式在状态栏下面显示 -- INSERT --,
" 先注释掉,默认已经为真了,如果这里再设置一遍会影响 echodoc 插件
" set showmode
" 水平切割窗口时,默认在右边显示新窗口
set splitright
" 允许 256 色
set t_Co=256
set cursorline
"set cursorcolumn
"----------------------------------------------------------------------
" 状态栏设置
"----------------------------------------------------------------------
set statusline= " 清空状态了
set statusline+=\ %F " 文件名
set statusline+=\ [%1*%M%*%n%R%H] " buffer 编号和状态
set statusline+=%= " 向右对齐
set statusline+=\ %y " 文件类型
" 最右边显示文件编码和行号等信息,并且固定在一个 group 中,优先占位
set statusline+=\ %0(%{&fileformat}\ [%{(&fenc==\"\"?&enc:&fenc).(&bomb?\",BOM\":\"\")}]\ %v:%l/%L%)
" Allow saving of files as sudo when I forgot to start vim using sudo.
cmap w!! w !sudo tee > /dev/null %