效果如下:
源码如下:
1 " ___
2 " 彡 _/ ⌒ ⌒ 你说神马~
3 " /)) (●) (●) ヽ
4 " |∩ (_人_) |
5 " / ノ、_ヽノ_ノ ̄)
6 " / / /フ_/
7 " L_/\ \(
8 "
9 " =====================
10 " Source: vimplus
11 " Vimrc: 个性化定会vim编辑神器
12 " Vundle: 插件管理工具
13 " 其他插件:pathogen(windows)、vim-addon-manager、vimana
14 " Set: 设置必要的配置 比如:字符集、tab缩进
15 " Plugin: 根据各自喜好和用法进行定制
16 " ColorScheme: vim主题风格
17 " PhpDoc: 主要还是服务于PHP
18 " 常用快捷键
19 "----- F2 nerdtree
20 "----- F3 taglist
21 "----- F4 buffers管理 暂定
22 "----- F5 刷新项目信息 php: (刷新tags cocspe等)
23 "----- F6 最近两个buffer切换
24
25 "================
26 "Set 基础设置
27 " 包括基础配置的开启等(语法、文件)
28 "================
29 set nocompatible "vim工作不需要考虑vi的兼容 nocp 简写
30 set nu "打开文件显示行号 也可不显示 nonu
31 set ruler "在右下角显示光标的坐标
32 set hlsearch "高亮显示搜索结果
33 set incsearch "边输入边搜索(实时搜索)
34 set showcmd "在ruler左边显示当前正在输入的命令
35 set expandtab "将tab键改为空格,默认是8个
36 set tabstop=4 "将tab键改为4个空格
37 set shiftwidth=4 "自动缩进时,使用4个空格,默认是8个
38 set cindent "c/c++自动缩进
39 set mouse= "设置鼠标滚轮非自然滚动
40 set fdm=indent "代码折叠
41 set ic "忽略大小写查找
42 set nofoldenable "禁用vim折叠功能
43 set showmatch "自动匹配括号
44 set backspace=indent,eol,start "设置退格删除功能
45
46 map 9 $ "通过9跳转到行末尾, 0默认跳转到行首
47 map <silent> <C-A> gg v G "Ctrl-A 选中所有内容
48
49 syntax on "自动语法高亮 enable 也可以,on可以覆盖当前对语法高亮的修改
50 filetype on "启动文件类型检查
51 filetype plugin on "运行vim加载文件类型插件
52 filetype indent on "启动文件自动缩进
53
54 "=================
55 "Plugin 插件引入
56 " Vundle 插件管理 Plugin & Bundle 均可
57 " 引入管理文件目录 vim/bundle/插件/doc/插件.txt 为插件的具体用法
58 "================
59 set rtp+=~/.vim/bundle/Vundle.vim
60 call vundle#begin()
61
62 Plugin 'VundleVim/Vundle.vim' "插件管理
63 Plugin 'chxuan/change-colorscheme' "颜色主题
64 Plugin 'jiangmiao/auto-pairs' "括号补全
65 Plugin 'scrooloose/nerdcommenter' "快速注释
66 Plugin 'scrooloose/nerdtree' "树形目录树
67 "Plugin 'Valloric/YouCompleteMe' "自动补全 Google工程师主研 neocomplete 这一款体验一般 日本货
68 Plugin 'godlygeek/tabular' "代码检测&格式化&对齐 ale 支持vim8.0 还有一个韩国牌子
69 Plugin 'ctrlpvim/ctrlp.vim' "快速查找文件
70 Plugin 'vim-airline/vim-airline' "装逼利器 各种导航线设置 负担会让vim略显卡顿
71 Plugin 'vim-airline/vim-airline-themes' "airline 主题
72 Plugin 'will133/vim-dirdiff' "文件差异比对
73 Plugin 'haya14busa/incsearch.vim' "极速跳转 据说是个日本卡哇伊搞得 sneak&easymotion 都可以搞搞
74 Plugin 'mhinz/vim-startify' "显示最近使用的文件列表
75 Plugin 'Xuyuanp/nerdtree-git-plugin' "git 目录树更改
76 Plugin 'Yggdroot/indentLine' "代码缩进
77 Plugin 'tpope/vim-surround' "方便的在字符两边插入各种符号 xml
78 Plugin 'tpope/vim-commentary' "注释代码行 gcc gc 注释 gcu gcgc 撤销注释
79 Plugin 'shawncplus/phpcomplete.vim' "php插件
80 Plugin 'vim-scripts/pdv-standalone' "PHP文档注释
81 Plugin 'vim-scripts/progressbar-widget'
82
83 "Plugin 'L9' "VIM脚本库
84 "Plugin 'tpope/vim-fugitive' "处理git merge 冲突 dv
85 "Plugin 'tpope/vim-repeat' "重复执行命令
86 "Plugin 'tpope/vim-endwise' "自动结束某些结构
87 "Plugin 'vim-scripts/a.vim' "头文件&实现文件快速切换
88 "Plugin 'vim-scripts/DoxygenToolkit.vim' "快速注释
89 "Plugin 'vim-scripts/SQLComplete.vim' "SQL补全
90
91 "html & css & js{}
92 "Plugin 'Valloric/MatchTagAlways' "自动匹配html标签,支持在标签间跳转
93 "Plugin 'docunext/closetag.vim' "自动闭合HTML标签
94 "Plugin 'gorodinskiy/vim-coloresque' "正则语法高亮 主要针对css\sass\less
95 "Plugin 'othree/yajs.vim' "js语法高亮
96 "Plugin 'othree/javascript-libraries-syntax.vim'
97 "Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
98 Plugin 'posva/vim-vue'
99
100 "tag tab 结构
101 "Plugin 'vim-scripts/taglist.vim' "taglist 标记列表 代码结构概览
102 Plugin 'majutsushi/tagbar' "标签结构
103
104 call vundle#end()
105 filetype plugin indent on
106
107 "===============
108 "多窗口操作 mac Command
109 "===============
110 map + <C-W>+ "+:扩大窗口
111 map - <C-W>- "- : 缩小窗口
112 map <C-h> <C-W>h "C-h 移动到左侧窗口
113 map <C-j> <C-W>j "C-j 移动到下方窗口
114 map <C-k> <C-W>k "C-k 移动到上方窗口
115
116 "===============
117 "不要交换文件和备份文件,减少冲突
118 "===============
119 set noswapfile
120 set nobackup
121 set nowritebackup
122
123 imap <F10> <ESC> :NextColorScheme<CR>
124 imap <F9> <ESC> :PreviousColorScheme<CR>
125
126 set background=dark
127 let g:solarized_termcolors=256
128
129 "===============
130 "taglist 配置信息
131 "===============
132 nmap <F3> <ESC>:TagbarToggle<RETURN>
133 set tags=tags
134 set autochdir
135 let g:tagbar_left = 0
136 let g:tagbar_width = 24
137 let g:tagbar_autoclose = 1
138 let g:tagbar_autofocus = 1
139 let g:tagbar_sort = 1
140
141 "===============
142 "代码缩进 标志线 默认为¦ Ctrl+i 控制显示
143 "===============
144 let g:indentLine_char = '¦'
145 let g:indentLine_color_term = 239
146 map <C-i> :IndentLinesToggle<CR>
147
148 "================
149 "PHP定制内容以及php-doc 自动补全 ctrl+x ctrl+o
150 "================
151 autocmd FileType php set omnifunc=phpcomplete#CompletePHP
152
153 " 首行缩进 vue高亮
154 autocmd FileType php set sw=4
155 autocmd FileType html set sw=2
156 autocmd FileType js set sw=2
157 autocmd FileType vue set sw=2
158 autocmd FileType javascript set sw=2
159
160 "首行缩进 vue
161 au BufRead,BufNewFile *.vue set filetype=html
162 au BufRead,BufNewFile *.ts set filetype=javascript
163
164 nnoremap <C-K> :call PhpDoc()<CR>
165 vnoremap <C-K> :call PhpDocRange()<CR>
166 let g:pdv_cfg_Uses = '1'
167 let g:pdv_cfg_Package = 'package'
168 let g:pdv_cfg_Version = '$Id$'
169 let g:pdv_cfg_Author = 'zhaojian <zhaojian@moxiu.net>'
170 let g:pdv_cfg_Copyright = ' 2012-2019 moxiu.com'
171 let g:pdv_cfg_License = ''
172
173 " ctags
174 "set tags+=/usr/include/tags
175 "set tags+=~/.vim/systags
176 "set tags+=~/.vim/x86_64-linux-gnu-systags
177 "let g:ycm_collect_identifiers_from_tags_files = 1
178 "let g:ycm_semantic_triggers = {}
179 "let g:ycm_semantic_triggers.c = ['->', '.', ' ', '(', '[', '&',']']
180
181 " cpp_class_scope_highlight
182 let g:cpp_class_scope_highlight = 1
183 let g:cpp_experimental_template_highlight = 1
184 let c_no_curly_error = 1
185
186 "================
187 "airline配置 切换不同的buffer缓冲区
188 "================
189 "set encoding=utf-8
190 let g:airline_theme="molokai"
191 let g:airline_powerline_fonts = 1
192 "let g:airline#extensions#tabline#enabled = 1
193 if !exists('g:airline_symbols')
194 let g:airline_symbols = {}
195 endif
196 let g:airline_left_sep = '⮀'
197 let g:airline_left_alt_sep = '⮁'
198 let g:airline_right_sep = '⮂'
199 let g:airline_right_alt_sep = '⮃'
200 let g:airline_symbols.branch = '⭠'
201 let g:airline_symbols.readonly = '⭤'
202 let g:airline_symbols.linenr = '⭡'
203 "let g:airline_symbols.spell = 'Ꞩ'
204 "let g:airline_symbols.notexists = '∄'
205 "let g:airline_symbols.whitespace = 'Ξ'
206 nnoremap <C-N> :bn<CR>
207 nmap <F6> <ESC>:w<RETURN>:b#<RETURN>
208
209 " ctrlp
210 let g:ctrlp_map = '<c-f>'
211 let g:ctrlp_cmd = ':CtrlP'
212 let g:ctrlp_working_path_mode = '0'
213 set wildignore+=*/tmp/*,*.so,*.swp,*.zip " MacOSX/Linux
214
215 " incsearch.vim
216 map / <Plug>(incsearch-forward)
217 map ? <Plug>(incsearch-backward)
218 map g/ <Plug>(incsearch-stay)
219
220 "===============
221 "简易的跨服务器复制粘贴
222 "===============
223 vmap <silent> <leader>y <ESC>:'<,'>w! !curl --data-binary @- -X POST http://moxiu.net/clipboard.php<RETURN><RETURN>
224 nmap <silent> <leader>p <ESC>:r !curl -s http://moxiu.net/clipboard.php<RETURN>
225
226 "**************************************映射的一些快捷键*****************************************
227 nmap <M-K> <ESC>:!php %:p<CR>
228 "文件树
229 nmap <C-p> <ESC> :NERDTreeToggle<CR>
230 "自动生成代码
231 function! Mx2AutoFill()
232 if line("$") == 1
233 ¦ exe "0read !~/.composer/vendor/bin/mx2 file:tpl " . expand("%:p")
234 ¦ exe line("$") . "d"
235 endif
236 endfunction
237 nmap <C-l> <ESC>:call Mx2AutoFill()<RETURN>
238 "自动生成注释
239
240 set cursorline
241 "hi CursorLine cterm=NONE ctermbg=darkred ctermfg=white
242 hi CursorLine cterm=NONE guibg=#006699 ctermfg=white
243 hi CursorColumn cterm=NONE ctermbg=darkred ctermfg=white
244 hi CursorLineNr cterm=NONE ctermfg=102 ctermbg=237 gui=NONE guifg=#878787 guibg=#3a3a3a
245
246
247 nmap <C-Y> <ESC>:r !~/.composer/vendor/bin/mx2 apidoc:fill<RETURN>
248
249 "YouCompleteMe 搞得鬼 插件目录下 运行 ./install.py 进行安装
250 "let g:ycm_path_to_python_interpreter = '/usr/bin/python2.7'
251 "let g:ycm_server_use_vim_stdout = 1
252 "let g:ycm_server_log_level = 'debug'