vimrc配置

设置项含义
set nocompatiblevim是vi的扩展版本,它在vi的基础上增加了很多功能,但就不与vi完全兼容了,
set compatible就是让vim关闭所有扩展功能,尽量模拟vi行为,若是 set nocompatible 则是关闭兼容模式
set showtabline=0/1设置tab的顶部标签栏,0为隐藏,1为新建显示,2为始终显示,相关tab命令
tabnew 创建新的tab页
tabn 下一个tab
tabp 上一个tab
tabs 显示已打开标签列表
tabc 关闭当前标签页
syntax on/off语法高亮或者不高亮,linux中可以使用locate xx.vim查看具体语法配置,比如locate java.vim
set t_Co=256terminal Color,默认是8色,以开启256色支持
set confirm设置确认,在处理未保存或只读文件的时候,弹出确认
set nowrap设置默认不换行
set fileformat=unix设置文件格式为unix
set showmatch显示匹配的括号
set scrolloff=5距离顶部和底部5行,将光标垂直居中放在屏幕上,当滚动或搜索大文件时
set laststatus=2将状态行显示在窗口底部倒数第二行
set incsearch输入搜索内容时就显示搜索结果
set hlsearch高亮搜索项
set whichwrap+=<,>,h,l默认情况下,在 VIM 中当光标移到一行最左边的时候,我们继续按左键,光标不能回到上一行的最右边。
同样地,光标到了一行最右边的时候,我们不能通过继续按右跳到下一行的最左边。但是,通过设置 whichwrap 我们可以对一部分按键开启这项功能。
如果想对某一个或几个按键开启到头后自动折向下一行的功能,可以把需要开启的键的代号写到 whichwrap 的参数列表中,各个键之间使用逗号分隔。以下是 whichwrap 支持的按键名称列表
set cursorline突显当前行
set cursorcolumn突显当前列
set autoindent沿用上一行的缩进
set smartindent类似 ‘autoindent’,但是可以识别一些 C 语法以能在合适的地方增加 / 减少缩进。
set cindent比上面两个更聪明;可以设置不同的缩进风格,c语言缩进风格
set indentexpr最灵活的一个: 根据表达式来计算缩进。若此选项非空,则优先于其它选项覆盖。
set rtp+=~/.vim/bundle/Vundle.vim将Vundle.vim配置到runtime path中
"----------------normal setting------------------------------------------------
set nocompatible                "去掉vi的一致性
set number                      ""显示行号"
set showtabline=1               ""show顶部标签栏

"-- set color
syntax enable                   ""开启语法高亮"
set t_Co=256
set background=dark             "设置背景色"
let g:solarized_termcolors=64   ""solarized主题设置在终端下的设置"
colorscheme solarized           ""set solarized

"-- set fileformat && encoding
set fenc=utf-8                  "文件编码"
set fileformat=unix             "设置以unix的格式保存文件"
set nowrap                      "设置不折行"

set showmatch                   "显示匹配的括号"
set confirm
set scrolloff=30                 "距离顶部和底部5行"
set laststatus=2                "命令行为两行"
set mouse=a                     "启用鼠标"
set selection=exclusive
set selectmode=mouse,key
set matchtime=5
set ignorecase                  "忽略大小写"
set incsearch
set hlsearch                    "高亮搜索项"
set whichwrap+=<,>,h,l
set autoread
set cursorline                  "突出显示当前行"
set cursorcolumn                "突出显示当前列"

"-- set tab \t space
set shiftwidth=4                
set backspace=2
set tabstop=4
set expandtab
set autoindent

"----------------plugin manage--------------------------------------------------
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'VundleVim/Vundle.vim'
Plugin 'Valloric/YouCompleteMe'
Plugin 'scrooloose/nerdtree'

call vundle#end()
filetype plugin indent on

"----------------plugin config--------------------------------------------------

"-- nerd setting
map <F2> :NERDTreeToggle<CR>                    "F2开启和关闭树"
let NERDTreeChDirMode=1
let NERDTreeShowBookmarks=1                     "显示书签"
let NERDTreeIgnore=['\~$', '\.pyc$', '\.swp$']  "设置忽略文件类型"
let NERDTreeWinSize=25                          "窗口大小"
autocmd vimenter * NERDTree
autocmd vimenter * wincmd w
autocmd BufEnter * if (winnr("$") == 1 && exists("b:NERDTree") &&b:NERDTree.isTabTree()) | q | endif
"autocmd BufEnter * if 0 == len(filter(range(1,winnr('$')),'empty(getbufvar(winbufnr(v:val),"&bt"))')) | qa! | endif





"----------------other setting--------------------------------------------------

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" new file title
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()"
func SetTitle()
    if &filetype == 'sh'
        call setline(1, "#################################################################################")
        call append(line("."),   "#  File Name:     ".expand("%"))
        call append(line(".")+1, "#  Author:        sunrise")
        call append(line(".")+2, "#  Mail:          xxx@xxx.com")
        call append(line(".")+3, "#  Created Time:  ".strftime("%c"))
        call append(line(".")+4, "#################################################################################")
        call append(line(".")+5,"")
        call append(line(".")+6,"#!/bin/bash")
    else
        call setline(1, "/********************************************************************************")
        call append(line("."),   "      >File Name:     ".expand("%"))
        call append(line(".")+1, "      >Author:        sunrise")
        call append(line(".")+2, "      >Mail:          xxx@xxx.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

    autocmd BufNewFile * normal G
endfunc

vim官方推荐书籍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值