0x00先放几个比较好的学习资料
1.Vim入门基础 http://www.jianshu.com/p/bcbe916f97e1
2.vim配置
3.简明Vim练级攻略 http://coolshell.cn/articles/5426.html
0x01然后是配置文件
字体 Mac上用Monaco 20号(Monaco字体太漂亮了太可爱了),Windows上用16号
"2017.7.20 g++ with macvim By gwj
let s:cpo_save = &cpo
set cpo&vim
colorscheme macvim
set cin
set tabstop=4
set softtabstop=4
set shiftwidth=4
set nu
set guitablabel=%M%t
set ruler
set autoindent
set smartindent
filetype on
syntax on
set showmatch
set guifont=Monaco:h20
set mouse=a
set selection=exclusive
set selectmode=mouse,key
nnoremap <F7> <Esc>:w<CR>:!g++ % -Wall -o
nnoremap <F8> <Esc>:!./
nnoremap <F9> <Esc>:w<CR>:!g++ % -Wall -o a
nnoremap <F10> <Esc>:!./a<CR>
set printexpr=system('open\ -a\ Preview\ '.v:fname_in)\ +\ v:shell_error
let $SSH_ASKPASS = simplify($VIM . '/../../MacOS') . '/macvim-askpass'
let $SUDO_ASKPASS = $SSH_ASKPASS
let &cpo = s:cpo_save
unlet s:cpo_save" Candy? MacOS
set number
set ruler
set tabstop=4
set shiftwidth=4
set autoindent
set smartindent
filetype on
syntax on
colorscheme solarized
set showmatch
set guifont=Monaco:h20
set mouse=a
set selection=exclusive
set selectmode=mouse,key
nnoremap <F7> <Esc>:w<CR>:!g++ % -Wall -o
nnoremap <F8> <Esc>:!./
nnoremap <F9> <Esc>:w<CR>:!g++ % -Wall -o a<CR>
nnoremap <F10> <Esc>:!./a<CR>"mhy12345
"Configure of Vundle
set nocompatible " be iMproved, required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" Default Plugin
Plugin 'VundleVim/Vundle.vim'
Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'
Plugin 'Valloric/YouCompleteMe'
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList - lists configured plugins
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
"
" Put your non-Plugin stuff after this line
"
"Old encoding setting...
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
"Configure airline
let molokai_original=1
let g:airline_theme="molokai"
"始终显示状态栏
set laststatus=2
"打开tabline功能,方便查看Buffer和切换,省去了minibufexpl插件
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#buffer_nr_show = 1
"设置切换Buffer快捷键"
nnoremap <C-tab> :bn<CR>
nnoremap <C-s-tab> :bp<CR>
" 关闭状态显示空白符号计数
let g:airline#extensions#whitespace#enabled = 0
let g:airline#extensions#whitespace#symbol = '!'
" 设置consolas字体"前面已经设置过
"set guifont=Consolas\ for\ Powerline\ FixedD:h11
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
"End
"YouCompleteMe
let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py'
let g:airline_powerline_fonts = 1
"Own configure
nnoremap <leader>f :YcmCompleter FixIt<CR>
function Compile()
if &filetype == 'cpp'
exec "!g++ % -o %< -g -Wall -Wextra -Wconversion -std=c++11"
elseif &filetype == 'c'
exec "!gcc % -o %< -g -Wall -Wextra -Wconversion"
elseif &filetype == 'pas'
exec "!fpc % -g"
elseif &filetype == 'tex'
exec "!xelatex '%'"
elseif &filetype == 'java'
exec "!javac %"
elseif &filetype == 'scss'
exec "!sass % > %<.css"
endif
endfunction
function Debug()
if &filetype == 'cpp'
exec "!gdb ./%<"
elseif &filetype == 'tex'
exec "!open './%<.pdf'"
elseif &filetype == 'java'
exec "!jdb %<"
endif
endfunction
function Run()
if &filetype == 'cpp'
exec "!time ./%<"
elseif &filetype == 'tex'
exec "!open './%<.pdf'"
elseif &filetype == 'java'
exec "!java %<"
elseif &filetype == 'ruby'
exec "!ruby %"
elseif &filetype == 'html'
exec "!firefox %"
elseif &filetype == 'php'
exec "!php %"
elseif &filetype == 'sh'
exec "!bash %"
endif
endfunction
set hlsearch
set mouse=a
set smartindent
set fdm=marker
set number
set tabstop=4
set softtabstop=4
set shiftwidth=4
set backspace=2
syntax on
imap jj <esc>
map <F9> : call Compile() <CR>
map <F5> : call Debug() <CR>
map <F6> : call Run() <CR>
map <F8> : ! xcodebuild <CR>
map <F12> : ! subl ./% <CR>
map <F2> : ! python3 % <CR>
colors evening"main command
"打开语法高亮
syntax on
"使用配色方案
colorscheme desert
"打开文件类型检测功能
filetype on
"不同文件类型采用不同缩进
filetype indent on
"允许使用插件
filetype plugin on
filetype plugin indent on
"关闭vi模式
set nocp
"与windows共享剪贴板
set clipboard+=unnamed
"取消VI兼容,VI键盘模式不易用
set nocompatible
"显示行号, 或set number
set nu
"历史命令保存行数
set history=100
"当文件被外部改变时自动读取
set autoread
"取消自动备份及产生swp文件
set nobackup
set nowb
set noswapfile
"允许使用鼠标点击定位
set mouse=a
"允许区域选择
set selection=exclusive
set selectmode=mouse,key
"高亮光标所在行
set cursorline
"取消光标闪烁
set novisualbell
"总是显示状态行
set laststatus=2
"状态栏显示当前执行的命令
set showcmd
"标尺功能,显示当前光标所在行列号
set ruler
"设置命令行高度为3
set cmdheight=3
"粘贴时保持格式
set paste
"高亮显示匹配的括号
set showmatch
"在搜索的时候忽略大小写
set ignorecase
"高亮被搜索的句子
set hlsearch
"在搜索时,输入的词句的逐字符高亮(类似firefox的搜索)
set incsearch
"继承前一行的缩进方式,特别适用于多行注释
set autoindent
"为C程序提供自动缩进
set smartindent
"使用C样式的缩进
set cindent
"制表符为4
set tabstop=4
"统一缩进为4
set softtabstop=4
set shiftwidth=4
"允许使用退格键,或set backspace=2
set backspace=eol,start,indent
set whichwrap+=<,>,h,l
"取消换行
set nowrap
"启动的时候不显示那个援助索马里儿童的提示
set shortmess=atI
"在被分割的窗口间显示空白,便于阅读
set fillchars=vert:\ ,stl:\ ,stlnc:\
"光标移动到buffer的顶部和底部时保持3行距离, 或set so=3
set scrolloff=3
"设定默认解码
set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
"设定字体
set guifont=Courier_New:h11:cANSI
set guifontwide=新宋体:h11:cGB2312
"设定编码
set enc=utf-8
set fileencodings=ucs-bom,utf-8,chinese
set langmenu=zh_CN.UTF-8
language message zh_CN.UTF-8
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
"自动补全
filetype plugin indent on
set completeopt=longest,menu
"自动补全命令时候使用菜单式匹配列表
set wildmenu
autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType java set omnifunc=javacomplete#Complet0x03具体操作
占坑待填。










