个人vimrc设置和vim进阶之旅

 gvim ~/.vimrc
runtime! debian.vim
if has("syntax")
  syntax on
endif
" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
  source /etc/vim/vimrc.local
endif

set guifont=Bitstream\ Vera\ Sans\ Mono\ 11
colorscheme desert
set lines=35 columns=118

set nu
set autoindent
set ts =2
set showmatch
set showmode
set showcmd
set wrap

syntax enable

vim进阶之旅

1、先安装vim

注意vim必须7.4以上版本,因为下面的插件要求7.4以后的版本
在终端输入以下命令,则会自动安装:

    sudo apt-get install vim

安装之后可以用查看版本

             vim --version

2、安装git

3、创建.vim .vimrc

在根目录下创建.vim目录和vim的环境设置文档.vimrc

mkdir -p ~/.vim && touch ~/.vimrc

在.vim目录下创建plugin目录和doc目录

个人的VIM

无汉字


" The following are commented out as they cause vim to behave a lot  
" differently from regular Vi. They are highly recommended though. 
"set showcmd        " Show (partial) command in status line.  
"set showmatch      " Show matching brackets.  
"set ignorecase     " Do case insensitive matching  
"set smartcase      " Do smart case matching
"set incsearch      " Incremental search  
set hlsearch
"set autowrite      " Automatically save before commands like :next and :make  
"set hidden             " Hide buffers when they are abandoned  
"set mouse=a        " Enable mouse usage (all modes) 
set nocompatible
syntax enable

"set guifont=dejaVu\ Sans\ MONO\ 10"
set guifont=Courier_New:h10:cANSI

colorscheme desert

set cursorline
hi cursorline guibg=#00ff00
hi CursorColumn guibg=#00ff00

set nu
set wrap
set ruler
set tabstop=4
set shiftwidth=4
set softtabstop=4
set smarttab

filetype on
filetype plugin on
filetype indent on

set magic
set noerrorbells
set novisualbell
"set guioptions-=T"
"set guioptions-=m"
set smartindent
set cin
set confirm
set foldenable
"set nofen"

set foldmethod=manual
set foldcolumn=0
setlocal foldlevel=3
set foldclose=all

set encoding=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
set fileencodings=utf-8
set termencoding=utf-8
set langmenu=zh_CN.UTF-8
set helplang=cn
set history=1000
set autoread
set viminfo+=!
set iskeyword+=_,$,@,%,#,-
set report=0
set cmdheight=1
set wildmenu
set fillchars=vert:\ ,stl:\ ,stlnc:\

set backspace=eol,start,indent
set whichwrap+=<,>,h,l
set scrolloff=3
"set autoindent"

set vb t_vb=
set laststatus=2
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}

set pastetoggle=<F9>
set background=dark
set completeopt=longest,preview,menu
set clipboard+=unnamed
set nobackup
set noswapfile

set gfn=Tlwg\ Typist\ 16

有汉字


" The following are commented out as they cause vim to behave a lot  
" differently from regular Vi. They are highly recommended though. 
"输入的命令显示出来,看的清楚" 
"set showcmd        " Show (partial) command in status line.  
"高亮显示匹配的括号([{和}])"
"set showmatch      " Show matching brackets.  
"搜索时不区分大小写"
"还可以使用简写(“:set ic”和“:set noic”)"
"set ignorecase     " Do case insensitive matching  
"set smartcase      " Do smart case matching
"输入搜索内容时就显示搜索结果  
"set incsearch      " Incremental search  
"搜索逐字符高亮"
set hlsearch
"自动保存"
"set autowrite      " Automatically save before commands like :next and :make  
"set hidden             " Hide buffers when they are abandoned  
"set mouse=a        " Enable mouse usage (all modes) 
"关闭vi兼容模式"
set nocompatible
"自动开启语法高亮"
syntax enable

"设置字体"
"set guifont=dejaVu\ Sans\ MONO\ 10
set guifont=Courier_New:h10:cANSI

"设置颜色"
"colorscheme desert

"高亮显示当前行"
set cursorline
hi cursorline guibg=#00ff00
hi CursorColumn guibg=#00ff00
"自动换行”
set wrap
"显示行数"
set nu

"显示标尺"
set ruler

"设置所有的Tab和缩进为4个空格"
set tabstop=4

"设定<<和>>命令移动时的宽度为4"
set shiftwidth=4

"使得按退格键时可以一次删除4个空格"
set softtabstop=4
set smarttab

"开启相关插件"
"侦测文件类型"
filetype on
"载入文件类型插件"
filetype plugin on
"为特定文件类型载入相关缩进文件"
filetype indent on

"设置魔术"
set magic

"关闭遇到错误时的声音提示"
"关闭错误信息响铃"
set noerrorbells

"关闭使用可视响铃代替呼叫"
set novisualbell


"隐藏工具栏"
set guioptions-=T/!!!!!!!!!!

"隐藏菜单栏"
set guioptions-=m/!!!!!!!!!!

"开启新行时使用智能自动缩进"
set smartindent
set cin

"在处理未保存或只读文件的时候,弹出确认"
set confirm

"""""""""""""""""""""""""""""""
"""=>代码折叠功能<="""
"""""""""""""""""""""""""""""""
"激活折叠功能"
set foldenable
"set nofen(这个是关闭折叠功能)"

"设置按照语法方式折叠(可简写set fdm=XX)"
"有6种折叠方法:
"manual   手工定义折叠"
"indent   更多的缩进表示更高级别的折叠"
"expr     用表达式来定义折叠"
"syntax   用语法高亮来定义折叠"
"diff     对没有更改的文本进行折叠"
"marker   对文中的标志进行折叠"
set foldmethod=manual
"set fdl=0(这个是不选用任何折叠方法)"
"设置折叠区域的宽度"
"如果不为0,则在屏幕左侧显示一个折叠标识列
"分别用“-”和“+”来表示打开和关闭的折叠
set foldcolumn=0

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

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

""""""""""""""""""""""""""""""""""""
"""=>编码设置<="""
""""""""""""""""""""""""""""""""""""
"设置编码"
set encoding=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936

"设置文件编码"
set fileencodings=utf-8

"设置终端编码"
set termencoding=utf-8

"设置语言编码"
set langmenu=zh_CN.UTF-8
set helplang=cn

"设置历史记录步数"
set history=1000

"当文件在外部被修改时,自动更新该文件"
set autoread
"保存全局变量"
set viminfo+=!

"带有如下符号的单词不要被换行分割"
set iskeyword+=_,$,@,%,#,-

"通过使用: commands命令,告诉我们文件的哪一行被改变过"
set report=0

"设置命令行的高度"
set cmdheight=1
"增强模式中的命令行自动完成操作"
set wildmenu
"被分割的窗口间显示空白,便于阅读"
set fillchars=vert:\ ,stl:\ ,stlnc:\

"缩进,自动缩进(继承前一行的缩进)"
"set autoindent 命令打开自动缩进,是下面配置的缩写

"使回格键(backspace)正常处理indent, eol, start等"
set backspace=eol,start,indent

"允许空格键和光标键跨越行边界"
set whichwrap+=<,>,h,l
"光标移动到buffer的顶部和底部时保持3行距离"
set scrolloff=3

"置空错误铃声的终端代码"
set vb t_vb=

"显示状态栏(默认值为1,表示无法显示状态栏)"
set laststatus=2

"状态行显示的内容"
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}

"粘贴不换行问题的解决方法"
set pastetoggle=<F9>

"设置背景颜色"
set background=dark

"文件类型自动检测,代码智能补全"
set completeopt=longest,preview,menu

"共享剪切板"
set clipboard+=unnamed

"从不备份"
set nobackup
set noswapfile

set gfn=Tlwg\ Typist\ 16

without use 需要插件


"高亮显示普通txt文件(需要txt.vim脚本)"
au BufRead,BufNewFile *  setfiletype txt

"使用空格来替换Tab"
set expandtab

"可使用autoindent命令的简写,即“:set ai”和“:set noai”
"还可以使用“:set ai sw=4”在一个命令中打开缩进并设置缩进级别
set ai
set cindent

"智能缩进"
set si

"设置软宽度"
set sw=4

"行内替换"
set gdefault


"不要图形按钮"
set go=

"在执行宏命令时,不进行显示重绘;在宏命令执行完成后,一次性重绘,以便提高性能"
set lz

"匹配括号高亮的时间(单位是十分之一秒)"
set mat=2

"用浅色高亮显示当前行"
autocmd InsertLeave * se nocul
autocmd InsertEnter * se cul


"显示中文帮助"
if version >= 603
        set helplang=cn
            set encoding=utf-8
endif

"设置高亮相关项"
highlight Search ctermbg=black ctermfg=white guifg=white guibg=black

""""""""""""""""""""""""""""""""
"""=>在shell脚本开头自动增加解释器以及作者等版权信息<="""
""""""""""""""""""""""""""""""""
"新建.py,.cc,.sh,.java文件,自动插入文件头"
autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()"
"定义函数SetTitle,自动插入文件头"
func SetTitle()
    if expand ("%:e") == 'sh'
        call setline(1, "#!/bin/bash")
        call setline(2, "#Author:bert")
        call setline(3, "#Blog:https://blog.51cto.com/zpf666")
        call setline(4, "#Time:".strftime("%F %T"))
        call setline(5, "#Name:".expand("%"))
        call setline(6, "#Version:V1.0")
        call setline(7, "#Description:This is a production script.")
    endif
endfunc
set cursorline
let g:miniBufExplMapWindowNavVim = 1 
let g:miniBufExplMapWindowNavArrows = 1 
let g:miniBufExplMapCTabSwitchBufs = 1 
let g:miniBufExplModSelTarget = 1 
set hlsearch
hi Search ctermbg=LightYellow
hi Search ctermfg=Red
if filereadable(expand("~/.vimrc.bundles"))
    source ~/.vimrc.bundles
endif
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
Bundle 'gmarik/vundle'
Bundle 'taglist.vim'
let Tlist_Ctags_Cmd='ctags'
let Tlist_Show_One_File=1               "不同时显示多个文件的tag,只显示当前文件的
let Tlist_WinWidt =28                   "设置taglist的宽度
"let Tlist_Exit_OnlyWindow=1             "如果taglist窗口是最后一个窗口,则退出vim
"let Tlist_Use_Right_Window=1           "在右侧窗口中显示taglist窗口
"let Tlist_Use_Left_Windo =1             "在左侧窗口中显示taglist窗口 


Bundle 'majutsushi/tagbar'
"nmap <Leader>tb :TagbarToggle<CR>      "快捷键设置
let g:tagbar_ctags_bin='ctags'          "ctags程序的路径
let g:tagbar_width=30                   "窗口宽度的设置
map <F4> :Tagbar<CR>
"autocmd BufReadPost *.cpp,*.c,*.h,*.hpp,*.cc,*.cxx call tagbar#autoopen()"

Bundle 'EasyGrep'
let g:EasyGrepMode = 2     " All:0, Open Buffers:1, TrackExt:2, 
let g:EasyGrepCommand = 0  " Use vimgrep:0, grepprg:1
let g:EasyGrepRecursive  = 1 " Recursive searching
let g:EasyGrepIgnoreCase = 1 " not ignorecase:0
let g:EasyGrepFilesToExclude = "*.bak, *~, cscope.*, *.a, *.o, *.pyc, *.bak"

Plugin 'grep.vim' 
nnoremap <silent> <F3> :Grep<CR>


"Plugin 'Valloric/YouCompleteMe'
"let g:ycm_key_list_select_com let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/.ycm_extra_conf.py'
" 
"let g:ycm_min_num_of_chars_for_completion = 2 " 输入第 2 个字符开始补全
"let g:ycm_seed_identifiers_with_syntax = 1 " 语法关键字补全
" 
"let g:ycm_complete_in_comments = 1 " 在注释中也可以补全
"let g:ycm_complete_in_strings = 1 " 在字符串输入中也能补全
" 
"let g:ycm_collect_identifiers_from_tag_files = 1 " 使用 ctags 生成的 tags 文件
"let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 注释和字符串中的文字也会被收入补全
" 
"let g:ycm_cache_omnifunc = 0 " 每次重新生成匹配项,禁止缓存匹配项
"let g:ycm_use_ultisnips_completer = 0 " 不查询 ultisnips 提供的代码模板补全,如果需要,设置成 1 即可
" 
"let g:ycm_show_diagnostics_ui = 0 " 禁用语法检查
"let g:ycm_key_list_select_completion = ['<Down>'] " 选择下一条补全,Default: ['<TAB>', '<Down>']
" 
"let g:ycm_key_list_previous_completion = ['<Up>'] " 选择上一条补全,Default: ['<S-TAB>', '<Up>']
"let g:ycm_key_list_stop_completion = ['<Enter>'] " 中止此次补全,Default: ['<C-y>']

Bundle 'scrooloose/nerdtree'
let NERDTreeWinPos='left'
let NERDTreeWinSize=30
let NERDTreeHighlightCursorline = 1 " 高亮当前行
"autocmd vimenter * NERDTree
map <F2> :NERDTreeToggle<CR>

Bundle 'fholgado/minibufexpl.vim'
let g:miniBufExplMapWindowNavVim = 1   
let g:miniBufExplMapWindowNavArrows = 1   
let g:miniBufExplMapCTabSwitchBufs = 1   
let g:miniBufExplModSelTarget = 1  
let g:miniBufExplMoreThanOne=0

map <F11> :MBEbp<CR>
map <F12> :MBEbn<CR>

Bundle 'bling/vim-airline'
let &termencoding=&encoding

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值