能够选择须要的功能添加至 ~/.vimrc 打开注释使之生效。java
" 让 vim 关闭全部扩展的功能,尽可能模拟 vi 的行为。 set nocompatible " 默认是8色的,开启256色支持 set t_Co=256 " 突出显示当前行,即横线 set cursorline " 隐藏工具栏 set guioptions-=T " 隐藏菜单栏 set guioptions-=m " 设置在状态行显示的信息 set foldcolumn=0 " 不要使用vi的键盘模式,而是vim本身的 set nocompatible " 语法高亮 set syntax=on " 去掉输入错误的提示声音 set noeb " Tab键的宽度 set tabstop=4 " 统一缩进为4 set softtabstop=4 " 历史记录数 set history=1000 " 禁止生成临时文件 set nobackup " 禁止生成临时文件 set noswapfile " 搜索忽略大小写 set ignorecase " 搜索逐字符高亮 set hlsearch " 输入搜索内容时就显示搜索结果 set incsearch " 高亮显示匹配的括号 set showmatch " 匹配括号高亮的时间(单位是十分之一秒) set matchtime=1 " 光标移动到buffer的顶部和底部时保持3行距离 set scrolloff=3 " 输入的命令显示出来,看的清楚些 set showcmd " 打开状态栏标尺 set ruler " filetype on " 开始折叠 " set foldenable " 显示行号 " set number " 经过使用: commands命令,告诉咱们文件的哪一行被改变过 " set report=0 " 设置魔术 " set magic " 设置当文件被改动时自动载入 " set autoread " 代码补全 " set completeopt=preview,menu " 容许插件 " filetype plugin on " 共享剪贴板 " set clipboard=unnamed " 从不备份 " set nobackup " make 运行 " set makeprg=g++\ -Wall\ \ % " 自动保存 " set autowrite " set foldmethod=indent " set foldlevel=3 " 在处理未保存或只读文件的时候,弹出确认 " set confirm " 自动缩进 " set autoindent " set cindent " 把tabs转换成空格 " set shiftwidth=4 " 不要用空格代替制表符 " set noexpandtab " 在行和段开始处使用制表符 " set smarttab " 行内替换 " set gdefault " 为C程序提供自动缩进 " set smartindent " 能够在buffer的任何地方使用鼠标(相似office中在工做区双击鼠标定位,鼠标选择) " set mouse=a " 为了使代码风格尽可能保持一致,通常不容许在代码使用TAB符,而以4个空格代之。以下只在编辑c和cpp文件时实行这种设置了 " autocmd FileType c,cpp set shiftwidth=4 | set expandtab " 在被分割的窗口间显示空白,便于阅读 " set fillchars=vert:\ ,stl:\ ,stlnc:\ " 容许backspace和光标键跨越行边界,方向键自动换行 " set whichwrap+=<,>,h,l " 个人状态行显示的内容(包括文件类型和解码) " set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} " set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%] " 老是显示状态行 " set laststatus=2 " 命令行(在状态行下)的高度,默认为1,这里是2 " set cmdheight=2 " 状态栏定义 " set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\ " 映射全选+复制 ctrl+a map <C-A> ggVGY " 选中状态下 Ctrl+c 复制 vmap <C-c> "+y "新建.c,.h,.sh,.java文件,自动插入文件头 autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()" func SetTitle() if &filetype == 'sh' call setline(1, "#!/bin/bash") call append(line("."), "# File Name: ".expand("%")) call append(line(".")+1, "# Intro: *****") call append(line(".")+2, "# mail: *****@163.com") call append(line(".")+3, "# Created Time: ".strftime("%c")) call append(line(".")+4, "#-------------------------------") call append(line(".")+5, "") else call setline(1, "/*************************************************************************") call append(line("."), " > File Name: ".expand("%")) call append(line(".")+1, " > Intro: *****") call append(line(".")+2, " > Mail: *****@163.com") call append(line(".")+3, " > Created Time: ".strftime("%c")) call append(line(".")+4, " ************************************************************************/") call append(line(".")+5, "") endif if &filetype == 'cpp' call append(line(".")+6, "#include<iostream>") call append(line(".")+7, "using namespace std;") call append(line(".")+8, "") endif if &filetype == 'c' call append(line(".")+6, "#include<stdio.h>") call append(line(".")+7, "") endif endfunc " 新建文件后,自动定位到文件末尾 autocmd BufNewFile * normal G