Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1630533
  • 博文数量: 1481
  • 博客积分: 26784
  • 博客等级: 上将
  • 技术积分: 17045
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-12 09:22
文章分类

全部博文(1481)

文章存档

2014年(10)

2013年(353)

2012年(700)

2011年(418)

分类: 系统运维

2012-07-27 09:53:30

set nocompatible "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin

set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '\ let cmd = '""' . $VIMRUNTIME . '\diff"'
let eq = '"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction

if has("gui_running")
"设置编码格式&帮助语言
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
set helplang=cn,en

"解决菜单乱码
set langmenu=chinese
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
endif

"字体设置
set guifont=Dejavu_Sans_Mono:h14:cANSI
"set gfn=YaHei\ Consolas\ Hybrid:h10
"set gfn=YaHei\ Consolas\ Hybrid:h11
"set guifontwide=YaHei\ Consolas\ Hybrid:h11
" set guifont=Courier_New:h11
" set guifontwide=YaHei\ Consolas\ Hybrid:h11

"if has("win32")
"set guifont=Courier_New:h12:cANSI
"set guifontwide=YouYuan:h12:cGB2312
"au GUIEnter * simalt ~x
"elseif has("mac") || has("macunix")
" set guifont=Courier:h14
" set guifontwide=Hei_Regular:h14
" colorscheme tabula
"else
" set guifont=
" set guifontwide=
"endif

"设置窗口的起始位置和大小
winpos 300 200
"winpos 250 200
"set lines=22
set lines=30
set columns=100
"gvim启动最大化
"autocmd GUIEnter * simalt ~x

"Terminal(win下的终端)
if(has("win32") || has("win95") || has("win64") || has("win16"))
map :!cmd
else
map :!bash
endif

"colorscheme Murphy "配色方案
colorscheme desert
"colorscheme inkpot
"colorscheme ir_black
"colorscheme koehler
"colorscheme wombat256
"set shortmess=atI "启动的时候不显示那个援助索马里儿童的提示
"hi Comment ctermfg=DarkCyan "修改默认注释颜色
syntax on "语法高亮
filetype on "侦测文件类型
filetype plugin on "载入文件类型插件
filetype indent on "为特定文件类型载入相关缩进文件
set showmatch "高亮显示匹配的括号
set matchtime=2 "匹配括号高亮的时间(单位是十分之一秒)
set cmdheight=1 "命令行(在状态行下)的高度,默认为1,
set noexpandtab "不要用空格代替制表符
set smarttab "在行和段开始处使用制表符
set wrap "自动换行显示
set number "显示行号儿
set report=0 "通过使用: commands命令,告诉我们文件的哪一行被改变过
set viminfo+=! "保存全局变量
set iskeyword+=_,$,@,%,#,- "带有如下符号的单词不要被换行分割
set backspace=2 "使回格键(backspace)正常处理indent, eol, start等
set whichwrap+=<,>,h,l "允许backspace和光标键跨越行边界
set linespace=1 "字符间插入的像素行数目
set wildmenu "增强模式中的命令行自动完成操作
set nolinebreak "不在单词中间断行
set showcmd "在状态栏显示目前所执行的指令,未完成的指令片段亦会显示出来
set backspace=indent,eol,start "在insert模式下能用删除键进行删除
set completeopt=longest,menu "关掉智能补全时的预览窗口,这样可以防止闪屏现象
set textwidth=120 "设置最大列数,超出后自动换行
set history=400 "历史记录数
set autoread "当文件在外部被修改,自动更新该文件
set gdefault "行内替换
set clipboard+=unnamed "与windows共享剪贴板
set tabpagemax=40

"自动缩进
set autoindent " 继承前一行的缩进方式,特别适用于多行注释
set cindent " 使用C样式的缩进
set smartindent "为C程序提供自动缩进
set expandtab
set foldmethod=marker

"Tab键的宽度
set tabstop=4

"统一缩进为4
set softtabstop=4
set shiftwidth=4

"关闭备份
set nobackup
set nowritebackup
set noswapfile

"搜索忽略大小写
set ignorecase

"搜索逐字符高亮
set hlsearch
set incsearch

"设置语法折叠



set foldenable " 开始折叠

set foldmethod=syntax " 设置语法折叠
"set foldmethod=indent " 根据缩进折叠

set foldcolumn=0 " 设置折叠区域的宽度

setlocal foldlevel=1 " 设置折叠层数为

set foldclose=all " 设置为自动关闭折叠

"打开文件是默认不折叠代码
set foldlevelstart=99

"用空格键来开关折叠
nnoremap @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')

"设定文件浏览器目录为当前目录
set bsdir=buffer
set autochdir

"读文件时自动设定当前目录为刚读入文件所在的目录
autocmd BufReadPost * cd %:p:h

"不要生成swap文件,当buffer被丢弃的时候隐藏它
setlocal noswapfile
set bufhidden=hide

"先尝试windows格式,再尝试unix格式,然后尝试mac格式
set fileformats=dos,unix,mac

"开启底部滚动条
"set guioptions+=b

"Set magic on
set magic

"当有错误时不发出声音
set flash
set noerrorbells
set novisualbell
set t_vb=

"使得注释换行时自动加上前导的空格和星号
set formatoptions=tcqro

"在被分割的窗口间显示空白,便于阅读
"set fillchars=vert:\ ,stl:\ ,stlnc:\

"光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3

"可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key


"关掉智能补全时的预览窗口
set completeopt=longest,menu



"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"快捷键map
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"设置控制键为,逗号
let mapleader = ","
let g:mapleader = ","
"noremap :
",/ 注释当前行
noremap / ^i//
inoremap w :w
inoremap q :q
noremap w :w
noremap q :q
"按jj保存退出编辑模式"
inoremap jj :w
cnoremap jj
"Alt+h,j,k,l 不退出编辑模式移动光标
inoremap
inoremap
inoremap
inoremap

"打开tlist"
noremap t :TlistToggle
"切换tlist与输入界面
noremap w w

"切换到下一个标签页
noremap n :tabnext
"切换上一个标签页"
noremap b :tabprev
"打开文件在显示页显示"
noremap o :browse tabnew


"tab键缩进



"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"php代码补全
"""""""""""""""""""""""""""""""""""""""""""""""""
au FileType php call PHPFuncList()
function PHPFuncList()
set dictionary-=$VIM/vimfiles/doc/php_funclist.txt
set dictionary+=$VIM/vimfiles/doc/php_funclist.txt
set complete-=k complete+=k
endfunction

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"标签
":tabnew 新建标签页
":tabs 显示已打开标签页的列表
":tabc 关闭当前标签页
":tabn 移动到下一个标签页
":tabp 移动到上一个标签页
":tabfirst 移动到第一个标签页
":tablast 移动到最后一个标签页
":tabm 1 移动标签到指定位置 从0开始计
":tabr 切换到第一个标签
":tabl 切换到最后一个标签
":tabo 关闭所有其他的tab
set showtabline=2 "始终显示标签页
set tabpagemax=15 "最大显示数
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""




" NERDTree的设定
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
",m快捷键
noremap m :NERDTreeToggle
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"始终显示菜单
"let NERDTreeChDirMode=2
" 如果用t T i 打开文件后自动退出NERDTree,
let NERDTreeQuitOnOpen = 1
let NERDTreeHighlightCursorline=1 "高亮NERDTrre窗口的当前行
let NERDTreeSortOrder=['//$','/.cpp$','/.c$','/.h$', '*'] "排序
" 总是显示Bookmark
let NERDTreeShowBookmarks = 1
" 总是显示行号
"let NERDTreeShowLineNumbers=1
" NERDTree 窗口大小
let NERDTreeWinSize = 20
" A 可使NERDTree窗口最大化Toggle it.
"过滤文件,使用正则表达式
let NERDTreeIgnore=['\.pdf$','\.doc','\.wmv','\.flv']
let NERDTreeShowHidden=0 "不显示隐藏文件(好像只在linux环境中有效)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"状态栏显示"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set laststatus=2 " always show the status line
set wildmenu
set wildmode=list:longest,full
" ignore these list file extensions
set wildignore=*.dll,*.o,*.obj,*.exe,*.pyc,\*.jpg,*.gif,*.png,*.pdf

"我的状态行显示的内容(包括文件类型和解码)
"set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
"状态栏设置:文件路径、文件名、标记、文件类型、字符编码、文件格式、当前位置、当前字符位置、文件总行数、日期、星期
set statusline=%F\ %h%1*%m%r%w%0*[%{strlen(&filetype)?&filetype:'none'},%{&encoding},%{&fileformat}]%=%-14.(%l,%c%V%)\ %<%p%%\ \ \ [%L]\ \ \ %{strftime('%Y-%m-%d\ -\ %H:%M\ %A')}


"在编辑过程中,在右下角显示光标位置的状态行
set ruler
set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%)

"高亮鼠标位置
if has("gui_running")
"cursorline highlight(高亮当前行)
set cursorline
hi CursorLine guibg=#666666
hi CursorColumn guibg=#333333
"cursorcolumn highlight(高亮当前列)
"set cursorcolumn
"highlight CursorLine cterm=none ctermbg=2 ctermfg=0
endif

"进入插入模式时改变状态栏颜色(仅限于Vim 7)

if version >= 700
au InsertEnter * hi StatusLine guibg=#818D29 guifg=#FCFCFC gui=none
au InsertLeave * hi StatusLine guibg=#EEEEEE guifg=#363636 gui=none
endif





"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"F2 显示菜单栏,默认不显示,
"Toggle Menu and Toolbar
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set guioptions-=m
set guioptions-=T
map :if &guioptions =~# 'T'
\set guioptions-=T
\set guioptions-=m
\else
\set guioptions+=T
\set guioptions+=m
\endif


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"打开窗口最大化
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
if has('win32')
au GUIEnter * simalt ~x
else
au GUIEnter * call MaximizeWindow()
endif

function! MaximizeWindow()
silent !wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz
endfunction


"================================tlist
set tags=tags;
set autochdir

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" CTags的设定
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 按照名称排序
let Tlist_Sort_Type = "name"
" 在右侧显示窗口
let Tlist_Use_Right_Window = 1
" 压缩方式 Remove extra information and blank lines from the taglist window.
let Tlist_Compact_Format = 1
" 如果只有一个buffer,kill窗口也kill掉buffer
let Tlist_Exit_OnlyWindow = 1
"auto open Tlist when vim open
let Tlist_Auto_Open = 0
" 不要显示折叠树
let Tlist_Enable_Fold_Column = 0
" taglist 窗口宽度
let Tlist_WinWidth = 22
" no inc the width of the windows
let Tlist_Inc_Winwidth = 1
" Close tag folds for inactive buffers.
let Tlist_File_Fold_Auto_Close = 1
"To process files even when the taglist window is not open.
let Tlist_Process_File_Always = 1
"display the tags defined only in the current buffer
let Tlist_Show_One_File = 1


要用的同学把VIM解压,覆盖你的vim目录下的同名文件, 看一下vimrc配置文件中的快捷键部分, 学点快捷键,不习惯的可以改成自己的
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"快捷键map
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

jj 返回命令模式
Alt + h 光标左移
Alt + l 光标右移

,/ 注释当前行
,w 保存
,q 退出
,m 打开nerdtree 菜单
,t 打开tlist菜单
,w "切换tlist与输入界面
,o 打开新文件
,n "切换到下一个标签页
,b "切换上一个标签页"

显示菜单栏

原文地址:

阅读(837) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~