1 "My .vimrc
2 "2016-04-10
3
4
5 au FileType php setlocal dict+=~/.vim/dict/php_funclist.dict
6 au FileType css setlocal dict+=~/.vim/dict/css.dict
7 au FileType c setlocal dict+=~/.vim/dict/c.dict
8 au FileType cpp setlocal dict+=~/.vim/dict/cpp.dict
9 au FileType scale setlocal dict+=~/.vim/dict/scale.dict
10 au FileType javascript setlocal dict+=~/.vim/dict/javascript.dict
11 au FileType html setlocal dict+=~/.vim/dict/javascript.dict
12 au FileType html setlocal dict+=~/.vim/dict/css.dict
13
14
15 "去掉
16 "去掉启动时的援助乌干达儿童的提示
17 set shortmess=atI
18 "去掉讨厌的有关vi一致性模式
19 set nocompatible
20 "去掉输入错误的提示声音
21 set noeb
22
23
24 "显示中文帮助
25 if version >= 603
26 set helplang=cn
27 set encoding=utf-8
28 endif
29
30
31 "编码
32 "set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
33 "set termencoding=utf-8
34 "set encoding=utf-8
35 "set fileencodings=ucs-bom,utf-8,cp936
36 "set fileencoding=utf-8
37
38
39 "主题
40 "color desert
41 color ron
42 "color torte
43 "colorscheme murphy
44 "colorscheme elflord
45
46
47 "显示
48 set number
49 syntax on
50 "高亮光标所在行、列
51 set cul
52 "set cuc
53 "浅色高亮当前行
54 autocmd InsertEnter * se cul
55 "autocmd InsertLeave * se nocul
56
57
58 "状态栏
59 set ruler
60 set cc=81
61 set showcmd
62 "启动显示状态行(1),总是显示状态行(2)
63 set laststatus=2
64 "状态行显示的内容
65 set statusline=%F%m%r%h%w\ [%{&encoding}]\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v]\ [%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
66 "命令行的高度,默认为1
67 set cmdheight=2
68
69
70 "对齐 ai ci si
71 set autoindent
72 set cindent
73 set smartindent
74
75
76 "Tab键
77 set tabstop=4
78 set softtabstop=4
79 set shiftwidth=4
80 "空格代替制表符
81 set expandtab
82 "行和段开始处使用制表符
83 set smarttab
84
85
86 "高亮显示匹配的括号
87 set showmatch
88 "匹配括号高亮的时间(单位是十分之一秒)
89 set matchtime=1
90
91 "自动补全 括号 引号
92 :inoremap ( ()<ESC>i
93 :inoremap ) <c-r>=ClosePair(')')<CR>
94 :inoremap { {<CR>}<ESC>O
95 :inoremap } <c-r>=ClosePair('}')<CR>
96 :inoremap [ []<ESC>i
97 :inoremap ] <c-r>=ClosePair(']')<CR>
98 :inoremap " ""<ESC>i
99 :inoremap ' ''<ESC>i
100 function! ClosePair(char)
101 if getline('.')[col('.') - 1] == a:char
102 return "\<Right>"
103 else
104 return a:char
105 endif
106 endfunction
107
108
109 "搜索
110 set hlsearch
111 "set nohls
112 "即时搜素
113 set incsearch
114 "搜索默认不区分大小写
115 set ignorecase smartcase
116 "行内替换
117 set gdefault
118
119
120 "键盘
121 "以下3行命令将ctrl-s映射为保存
122 nnoremap <C-S> :w<CR>
123 vnoremap <C-S> <C-C>:w<CR>
124 inoremap <C-S> <C-O>:w<CR>
125
126 "映射全选+复制 ctrl+a
127 map <C-A> ggVGY
128 map! <C-A> <Esc>ggVGY
129
130 "选中状态下 Ctrl+c 复制
131 vmap <C-c> "+y
132
133 "F5编译运行
134 map <F5> :call CompileRunGcc()<CR>
135 func! CompileRunGcc()
136 exec "w"
137 if &filetype == 'c'
138 exec "!g++ % -o %<"
139 exec "! ./%<"
140 elseif &filetype == 'cpp'
141 exec "!g++ % -o %<"
142 exec "! ./%<"
143 elseif &filetype == 'java'
144 exec "!javac %"
145 exec "!java %<"
146 elseif &filetype == 'sh'
147 :!./%
148 elseif &filetype == 'py'
149 exec "!python %"
150 exec "!python %<"
151 endif
152 endfunc
153
154 "C,C++的调试
155 map <F8> :call Rungdb()<CR>
156 func! Rungdb()
157 exec "w"
158 exec "!g++ % -g -o %<"
159 exec "!gdb ./%<"
160 endfunc
161
162
163 "其他
164 "当文件被改动时自动载入
165 set autoread
166 "自动保存
167 set autowrite
168 "处理未保存或只读文件时,弹出确认
169 set confirm
170 "覆盖文件时不备份
171 set nobackup
172 "禁止生成临时文件
173 set noswapfile
174 "设置当前编辑的文件所在路径为工作路径
175 set autochdir
176 "历史记录数
177 set history=1000
178 "侦测文件类型
179 filetype on
180 "载入文件类型插件
181 filetype plugin on
182 "为特定文件类型载入相关缩进文件
183 filetype indent on
184 "保存全局变量
185 set viminfo+=!
186 "带有如下符号的单词不要被换行分割
187 set iskeyword+=_,$,@,%,#,-
188 "字符间插入的像素行数目
189 set wildmenu
190 "在被分割的窗口间显示空白,便于阅读
191 set fillchars=vert:\ ,stl:\ ,stlnc:\