1 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
2 "" 使用办法
3 "" 1: git clone ~/.vim/bundle/vundle
4 "" 2: vim foo
5 "" 3: :BundleUpdate
6 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
7 "" 1: gui全屏的时候会有一点小问题
8 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
9 "" Date: 2014年 03月 17日 星期一 09:35:03 CST
10 "" Date: 2014 07 24
11 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
12
13 "设置为逗号比较好,因为不同的键盘\按键会有不一样的位置
14 let mapleader=','
15
16 " 快速打开vimrc的配置文件
17 map ee :tabnew $HOME/.vimrc
18
19 " ^Z快速进入shell
20 nmap :shell
21
22 " 判断操作系统
23 if (has("win32") || has("win64") || has("win32unix"))
24 let g:isWin = 1
25 else
26 let g:isWin = 0
27 endif
28
29 " 判断是终端还是gvim
30 if has("gui_running")
31 let g:isGUI = 1
32 else
33 let g:isGUI = 0
34 endif
35
36 "设置行号
37 :set nu
38 "自动缩进
39 :set autoindent
40
41 "设置缩进为4个字符,默认为8个
42 set softtabstop=4
43 set shiftwidth=4
44 set smarttab
45 set expandtab
46
47 "增加自动补齐路径
48 set path=.,/usr/include,/usr/include/c++/4.4.4
49 "打开语法高亮
50 syntax on
51 syntax enable
52 "设置背景颜色
53 set background=dark
54 "深色主题 对保护视力有一定的帮助
55 colorscheme delek
56 colorscheme evening
57 " 设置注释为绿色
58 highlight Comment ctermfg=red guifg=green
59 " 设置自动补齐窗口配色
60 highlight Pmenu guibg=lightgrey ctermbg=lightgrey guifg=black ctermfg=black
61 highlight PmenuSel guibg=lightgrey ctermbg=blue guifg=blue ctermfg=red
62
63 " 右下角显示完整命令
64 set showcmd
65
66 " 打开智能识别
67 " 自动识别文件类型
68 " 用文件类型plugin脚本
69 " 使用缩进定义文件
70 filetype plugin indent on
71 "help new-omni-completion help compl-omni "help ft-c-omni
72 "有一点要注意一下, 切记, 关於omni的设定要写在 filetype plugin ... on, 的后面
73 "autocmd FileType set omnifunc=syntaxcomplete#Complete
74 autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete
75 autocmd FileType python set omnifunc=pythoncomplete#Complete
76 autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
77 autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
78 autocmd FileType css set omnifunc=csscomplete#CompleteCSS
79 autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
80 autocmd FileType java set omnifunc=javacomplete#Complete
81
82 "查看制表符
83 set list
84 set listchars=//代码效果参考:http://hnjlyzjd.com/hw/wz_24968.html
tab:>-,trail:-85
86 "设置屏幕上下边界
87 set scrolloff=5
88 "set nowrap "用zl zh 移动
89 "set wrap "用gj gk 移动
90
91 " 让左右箭头可以智能的上下左右
92 set whichwrap=b,s,,h,l
93
94 " ctags 索引文件
95 set tags+=/usr/include/tags
96 set tags+=/usr/include/c++/4.4.4/tags
97 " 增加自动补齐路径
98 set path=.,/usr/include,/usr/include/c++/4.4.4
99
100 set cindent "C/C++风格缩进
101
102 set shortmess=atI "去掉欢迎界面
103 set ignorecase "搜索时忽略大小写
104 set showmatch "显示匹配的括号
105 set lbr "在breakat字符处而不是最后一个字符处断行
106 set history=400 "vim记住的历史操作的数量,默认的是20
107 set autoread "当文件在外部被修改时,自动重新读取
108 set mouse=n "在所有模式下都允许使用鼠标,还可以是n,v,i,c等
109
110 "在gvim中高亮当前行
111 if (g:isGUI)
112 set cursorline
113 colorscheme wombat
114 hi cursorline guibg=#333333
115 hi CursorColumn guibg=#333333
116 "set guifont=Consolas\ 10
117 "set guifontwide=Consolas\ 10
118 set guifont=DejaVu\ Sans\ Mono\ 10
119 set gfw=DejaVu\ Sans\ Mono\ 10
120 " 不显示toolbar
121 set guioptions-=T
122 " 不显示菜单栏
123 "set guioptions-=m
124 endif
125
126 " 设置字符集编码,默认使用utf8
127 if (g:isWin)
128 let &termencoding=&encoding " 通常win下的encoding为cp936
129 set fileencodings=utf8,cp936,ucs-bom,latin1
130 else
131 set encoding=utf8
132 set fileencodings=utf8,gb2312,gb18030,ucs-bom,latin1
133 endif
134
135 " 状态栏
136 set laststatus=2 " 总是显示状态栏
137 highlight StatusLine cterm=bold ctermfg=yellow ctermbg=blue
138 " 获取当前路径,将$HOME转化为~
139 function! CurDir()
140 let curdir = substitute(getcwd(), $HOME, "~", "g")
141 return curdir
142 endfunction
143 set statusline=【%n】\ %f%m%r%h\ |\ \ pwd:\ %{CurDir()}\ \ |%=|\ %l,%c\ %p%%\ |\ asci
144
145 " 第80列往后加下划线
146 "au BufWinEnter let w:m2=matchadd('Underlined', '\%>' . 80 . 'v.+', -1)
147
148 " 根据给定方向搜索当前光标下的单词,结合下面两个绑定使用
149 function! VisualSearch(direction) range
150 let l:saved_reg = @"
151 execute "normal! vgvy"
152 let l:pattern = escape(@", '\/.$^~【】')
153 let l:pattern = substitute(l:pattern, "\n$", "", "")
154 if a:direction == 'b'
155 execute "normal ?" . l:pattern . ""
156 else
157 execute "normal /" . l:pattern . ""
158 endif
159 let @/ = l:pattern
160 let @" = l:saved_reg
161 endfunction
162 "用 /# 向 前/后 搜索光标下的单词
163 vnoremap :call VisualSearch('f')
164 vnoremap # :call VisualSearch('b')
165
166 " 在文件名上按时,在新的tab中打开
167 " map gf :tabnew
168
169 " 恢复上次文件打开位置
170 set viminfo='10,\"100,:20,%,n~/.viminfo
171 au BufReadPost if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif
172
173 "从系统剪切板中复制,剪切,粘贴
174 "map "+y
175 "map "+x
176 "map "+p
177
178 " 快捷输入
179 " 自动完成括号和引号
180 inoremap 1 ():let leavechar=")"i
181 inoremap { { {}kA
182
183
184
185 "使用caps Lock代替ESC,如果是输入大量的大写时,可以先输入小写,然后选中用U改变
186 "在终端中输入
187 "xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'
188
189 "快速编译选项
190 "map :w :!make
191 "快速打开当前目录下的文件 快速打开指定目录下的文件
192 map :Texplore
193 map :tabpre
1