- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- " 一般设定
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- " 设定默认解码
- set fenc=utf-8
- set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
-
- " 设置颜色
- colorscheme desert
-
- "set guifont=Nimbus\ Mono\ L\ 12
- "set guifont=WenQuanYi\ Bitmap\ Song\ 12
- "set guifont=Verdana\ 10
- "set guifont=Courier\ 11
- set guifont=Bitstream\ Vera\ Sans\ Mono\ 10
-
- " 不要使用 vi 的键盘模式,而是 vim 自己的
- set nocompatible
-
- " history 文件中需要记录的行数
- set history=100
-
- " 在处理未保存或只读文件的时候,弹出确认
- set confirm
-
- " 与 windows 共享剪贴板
- set clipboard+=unnamed
-
- " 侦测文件类型
- filetype on
-
- " 载入文件类型插件
- filetype plugin on
-
- " 为特定文件类型载入相关缩进文件
- filetype indent on
-
- " 保存全局变量
- set viminfo+=!
-
- " 带有如下符号的单词不要被换行分割
- set iskeyword+=_,$,@,%,#,-
-
- " 语法高亮
- syntax on
-
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- """"""高亮显示 gtk 关键字""""""
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- syntax keyword gtkType gint gshort guint gushort gulong gdouble gfloat gchar guchar gboolean gpointer
- highlight link gtkType Type
-
-
-
- " 高亮字符,让其不受 100 列限制
- highlight OverLength ctermbg=red ctermfg=white guibg=red guifg=white
- match OverLength '\%101v.*'
-
- " 状态行颜色
- highlight StatusLine guifg=SlateBlue guibg=Yellow
- highlight StatusLineNC guifg=Gray guibg=White
-
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- " 文件设置
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- " 不要备份文件(根据自己需要取舍)
- set nobackup
-
- " 不要生成 swap 文件,当 buffer 被丢弃的时候隐藏它
- setlocal noswapfile
- set bufhidden=hide
-
- " 字符间插入的像素行数目
- set linespace=0
-
- " 增强模式中的命令行自动完成操作
- set wildmenu
-
- " 在状态行上显示光标所在位置的行号和列号
- set ruler
- set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%)
-
- " 命令行(在状态行下)的高度,默认为 1,这里是 2
- set cmdheight=2
-
- " 使回格键(backspace)正常处理 indent, eol, start 等
- set backspace=2
-
- " 允许 backspace 和光标键跨越行边界
- set whichwrap+=<,>,h,l
-
- " 可以在 buffer 的任何地方使用鼠标(类似 office 中在工作区双击鼠标定位)
- set mouse=a
- set selection=exclusive
- set selectmode=mouse,key
-
- " 启动的时候不显示那个援助索马里儿童的提示
- set shortmess=atI
-
- " 通过使用: commands 命令,告诉我们文件的哪一行被改变过
- set report=0
-
- " 不让 vim 发出讨厌的滴滴声
- set noerrorbells
-
- " 在被分割的窗口间显示空白,便于阅读
- set fillchars=vert:\ ,stl:\ ,stlnc:\
-
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- " 搜索和匹配
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- " 高亮显示匹配的括号
- set showmatch
-
- " 匹配括号高亮的时间(单位是十分之一秒)
- set matchtime=5
-
- " 在搜索的时候忽略大小写
- set ignorecase
-
- " 不要高亮被搜索的句子(phrases)
- set nohlsearch
-
- " 在搜索时,输入的词句的逐字符高亮(类似 firefox 的搜索)
- set incsearch
-
- " 输入: set list 命令是应该显示些啥?
- set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$
-
- " 光标移动到 buffer 的顶部和底部时保持 3 行距离
- set scrolloff=3
-
- " 不要闪烁
- set novisualbell
-
- " 我的状态行显示的内容(包括文件类型和解码)
- set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
-
- " 总是显示状态行
- set laststatus=2
-
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- " 文本格式和排版
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- " 自动格式化
- set formatoptions=tcrqn
-
- " 继承前一行的缩进方式,特别适用于多行注释
- set autoindent
-
- " 为 C 程序提供自动缩进
- set smartindent
-
- " 使用 C 样式的缩进
- set cindent
-
- " 制表符为 4
- set tabstop=4
-
- " 统一缩进为 4
- set softtabstop=4
- set shiftwidth=4
-
- " 不要用空格代替制表符
- set noexpandtab
-
- " 不要换行
- set nowrap
-
- " 在行和段开始处使用制表符
- set smarttab
-
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- " CTags 的设定
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- " 按照名称排序
- let Tlist_Sort_Type = "name"
-
- " 在右侧显示窗口
- let Tlist_Use_Right_Window = 1
-
- " 压缩方式
- let Tlist_Compart_Format = 1
-
- " 如果只有一个 buffer,kill 窗口也 kill 掉 buffer
- let Tlist_Exist_OnlyWindow = 1
-
- " 不要关闭其他文件的 tags
- let Tlist_File_Fold_Auto_Close = 0
-
- " 不要显示折叠树
- let Tlist_Enable_Fold_Column = 0
-
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- " Autocommands
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- " 只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示
-
- if has("autocmd")
- autocmd FileType xml,html,c,cs,java,perl,shell,bash,cpp,python,vim,php,ruby set number
- autocmd FileType xml,html vmap <C-o> <ESC>'<i<!--<ESC>o<ESC>'>o-->
- autocmd FileType java,c,cpp,cs vmap <C-o> <ESC>'<o/*<ESC>'>o*/
- autocmd FileType html,text,php,vim,c,java,xml,bash,shell,perl,python setlocal textwidth=100
- autocmd Filetype html,xml,xsl source $VIMRUNTIME/plugin/closetag.vim
- \ if line("'\"") > 0 && line("'\"") <= line("{1}quot;) |
- \ exe "normal g`\"" |
- \ endif
- endif "has("autocmd")
-
- " F5 编译和运行 C 程序,F6 编译和运行 C++ 程序
- " 请注意,下述代码在 windows 下使用会报错
- " 需要去掉./ 这两个字符
-
- " C 的编译和运行
- map <F5> :call CompileRunGcc()<CR>
- func! CompileRunGcc()
- exec "w"
- exec "!gcc % -o %<"
- exec "! ./%<"
- endfunc
-
- " C++ 的编译和运行
- map <F6> :call CompileRunGpp()<CR>
- func! CompileRunGpp()
- exec "w"
- exec "!g++ % -o %<"
- exec "! ./%<"
- endfunc
-
- " 能够漂亮地显示. NFO 文件
- set encoding=utf-8
- function! SetFileEncodings(encodings)
- let b:myfileencodingsbak=&fileencodings
- let &fileencodings=a:encodings
- endfunction
- function! RestoreFileEncodings()
- let &fileencodings=b:myfileencodingsbak
- unlet b:myfileencodingsbak
- endfunction
-
- au BufReadPre *.nfo call SetFileEncodings('cp437')|set ambiwidth=single
- au BufReadPost *.nfo call RestoreFileEncodings()
-
- " 高亮显示普通 txt 文件(需要 txt.vim 脚本)
- au BufRead,BufNewFile * setfiletype txt
-
- " 用空格键来开关折叠
- set foldenable
- "set foldmethod=manual
- set foldmethod=syntax
- set foldlevel=100
- nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>
-
- " minibufexpl 插件的一般设置
- let g:miniBufExplMapWindowNavVim = 1
- let g:miniBufExplMapWindowNavArrows = 1
- let g:miniBufExplMapCTabSwitchBufs = 1
- let g:miniBufExplModSelTarget = 1
-
- " 设置快捷方式 Set mapleader
- let mapleader = ","
-
- "快捷加载, 当输入",ss" 时,加载 .vimrc 文件
- map <silent> <leader>ss :source ~/.vimrc<cr>
- " 快速打开编辑 .vimrc 配置文件 --->",ee"
- map <silent> <leader>ee :e ~/.vimrc<cr>
- " 快速保存文件 --->",w"
- map <silent> <leader>w :w<cr>
- " 快速保存并退出文件 --->",w"
- map <silent> <leader>wq :wq<cr>
-
- " 自动命令,每次写入. vimrc 后,都会执行这个自动命令,source 一次~/.vimrc
- autocmd! bufwritepost .vimrc source ~/.vimrc
|