Mac下VIM的DIY偏好配置
" 首先执行:
" cp /usr/share/vim/vimrc ~/.vimrc
" 拷贝默认的配置文件 ,然后再执行:
" vim ~/.vimrc
" 编辑该文件 在文件的最后加入
" syntax on
" 保存退出即可
" ==========================下以下是配置内容==================
" Configuration file for vim
set modelines=0 " CVE-2007-2438
" Normally we use vim-extensions. If you want true vi-compatibility
" remove change the following statements
set nocompatible " Use Vim defaults instead of 100% vi compatibility
set backspace=2 " more powerful backspacing
" Don‘t write backup file if vim is being called by "crontab -e"
au BufWrite /private/tmp/crontab.* set nowritebackup nobackup
" Don‘t write backup file if vim is being called by "chpass"
au BufWrite /private/etc/pw.* set nowritebackup nobackup
" =====================DIY_Configuration_Setting============:
set showmatch " 高亮显示对应的括号
set number " 显示行号
set cindent " C风格的对齐方式
set autoindent " 自动对齐
set confirm " 在处理未保存或只读文件的时候,弹出确认
set tabstop=4 " Tab键的宽度
syntax on " 自动语法高亮
set softtabstop=4
set shiftwidth=4 " 统一缩进为4
set hlsearch
set incsearch " 搜索逐字符高亮
set gdefault " 行内替换
set encoding=utf-8
set fileencodings=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936,utf-16,big5,euc-jp,latin1 " 编码设置
"colorscheme torte " 设置颜色主题
"set guifont=Menlo:h16:cANSI " 设置字体
" set langmenu=zn_CN.UTF-8
" set helplang=cn " 语言设置
set matchtime=5 " 对应括号高亮的时间(单位是十分之一秒)
set autowrite " 在切换buffer时自动保存当前文件
set wildmenu " 增强模式中的命令行自动完成操作
set whichwrap=b,s,<,>,[,]
" 开启Normal或Visual模式下Backspace键,空格键,左方向键,右方向键,Insert或replace模式下左方向键,右方向键跳行的功能。
set wildmenu " 增强模式中的命令行自动完成操作
set whichwrap=b,s,<,>,[,]
" 开启Normal或Visual模式下Backspace键,空格键,左方向键,右方向键,Insert或replace模式下左方向键,右方向键跳行的功能。
" 设置当文件被改动时自动载入
set autoread
" " quickfix模式
autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>
" "代码补全
set completeopt=preview,menu
" "共享剪贴板
set clipboard+=unnamed
" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key
filetype plugin indent on
" 分为三部分命令:file on, file plugin on, file indent on.
" 分别表示自动识别文件类型,用文件类型脚本,使用缩进定义文件。
"==================自定义的键映射======================
vnoremap $1 <esc>`>a)<esc>`<i(<esc>
vnoremap $2 <esc>`>a]<esc>`<i[<esc>
vnoremap $3 <esc>`>a}<esc>`<i{<esc>
vnoremap $$ <esc>`>a"<esc>`<i"<esc>
vnoremap $q <esc>`>a‘<esc>`<i‘<esc>
vnoremap $e <esc>`>a"<esc>`<i"<esc>
" 括号自动生成
map <F7> :if exists("syntax_on") <BAR>
\ syntax off <BAR><CR>
\ else <BAR>
\syntax enable <BAR>
\ endif
" 单键<F7>控制syntax on/off。原因是有时候颜色太多会妨碍阅读。
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
exec "!gcc % -o %<"
exec "! ./%<"
endfunc
" <F5>编译和运行C程序
map <F6> :call CompileRunGpp<CR>
func! CompileRunGpp()
exec "w"
exec "!g++ % -o %<"
exec "! ./<"
endfunc
" <F6>编译和运行C++程序