vim配置文件

  1 "***************************************************************
  2 " File Name        : .vimrc
  3 " Author           : skytrails
  4 " Email            : skytrails@163.com
  5 " Create Time      : 2015年09月08日 星期二 06时35分
  6 " Last Modify      : 2015年09月10日 星期四 09时01分
  7 "***************************************************************
  8 
  9 set nu
 10 syntax on
 11 set t_Co=256
 12 colorscheme dracula
 13 "set TabLineFill=red
 14 "set ai    " eq: set autoindent
 15 set si    " eq: set smartindent
 16 set tabstop=4    " 设置tab键为4个空格
 17 set tags+=~/.vim/systags
 18 set noswapfile
 19 set fdm=syntax
 20 set foldlevel=99
 21 set foldcolumn=2
 22 set fillchars=vert:| 
 23 set laststatus=2
 24 set showtabline=2
 25 set hlsearch
 26 :let mapleader=',' 
 27 nmap <leader>h <c-w>h
 28 nmap <leader>j <c-w>j
 29 nmap <leader>k <c-w>k
 30 nmap <leader>l <c-w>l
 31 """"""""""""""""""""""""""""""
 32 " cscope setting
 33 " """"""""""""""""""""""""""""""
 34 :cs add cscope.out
 35 """"""""""""""""""""""""""""""
 36 " fuzzyfinder setting
 37 " """"""""""""""""""""""""""""""
 38 nmap <leader>ff :FufCoverageFile<cr>
 39 let g:fuf_coveragefile_globPatterns = ['**/*.h', '**/*.c', '**/*.cpp', '*akefile']
 40 nmap <leader>g :Rgrep<cr>
 41 """"""""""""""""""""""""""""""
 42 " Tagbar setting
 43 " """"""""""""""""""""""""""""""
 44 nmap <leader>t :TagbarToggle<cr>
 45 let g:tagbar_left = 1
 46 let g:tagbar_autoshowtag = 1
 47 """"""""""""""""""""""""""""""
 48 " TagHightLight setting
 49 " """"""""""""""""""""""""""""""
 50 nmap mfl :UpdateTypesFile<cr>
 51 """"""""""""""""""""""""""""""
 52 " NERDTree setting
 53 " """"""""""""""""""""""""""""""
 54 nmap <leader>N :NERDTreeToggle<cr>
 55 """"""""""""""""""""""""""""""
 56 " vimwiki setting
 57 " """"""""""""""""""""""""""""""
 58 :nmap <F3> :Grep<cr>
 59 """"""""""""""""""""""""""""""
 60 " vimwiki setting
 61 " """"""""""""""""""""""""""""""
 62 set nocompatible
 63 let wiki = {}
 64 "let wiki.path = '~/my_wiki/'
 65 let wiki.nested_syntaxes = {'python': 'python', 'c++': 'c'}
 66 let g:vimwiki_list = [wiki]
 67 """"""""""""""""""""""""""""""
 68 " omnicppcomplete setting
 69 " """"""""""""""""""""""""""""""
 70 "set filetype
 71 filetype plugin on
 72 set completeopt=menu,menuone  
 73 let OmniCpp_MayCompleteDot=1    "打开  . 操作符
 74 let OmniCpp_MayCompleteArrow=1  "打开 -> 操作符
 75 let OmniCpp_MayCompleteScope=1  "打开 :: 操作符
 76 let OmniCpp_NamespaceSearch=1   "打开命名空间
 77 let OmniCpp_GlobalScopeSearch=1  
 78 let OmniCpp_DefaultNamespace=["std"]  
 79 let OmniCpp_ShowPrototypeInAbbr=0  "打开显示函数原型
 80 let OmniCpp_SelectFirstItem = 2    "自动弹出时自动跳至第一个
 81 "轻松编辑,更新vimrc文件
 82 nmap <leader>e :tabedit<cr>
 83 nmap <leader>s :so $MYVIMRC<cr>
 84 nmap <leader>v :tabedit $MYVIMRC<cr>
 85 
 86 imap jj <esc>
 87 "插入文件注释
 88 map <F11> :call AddComment()<cr>
 89 
 90 "map =  :call MidComment()<cr>
 91 "map = <esc>g*Nma0i"<esc>$a"<esc>$N
 92 map - <esc>f"j0bbma0x"<esc>$x"<esc>`a
 93 map = :call CommentLine()<cr>
 94 map - <esc>f"j0bbma0x"<esc>$x"<esc>`a
 95 map - :call UnCommentLine()<cr>
 96 """"""""""""""""""""""""""""应用函数""""""""""""""""""""""""""""
 97 function! CommentLine()
 98     if &filetype == 'vim'
 99       execute "normal ma0i"<esc>$a""
100     endif
101 endf
102 function! UnCommentLine()
103     let l:f_comtype = 2
104     if &filetype == 'vim'
105       execute "normal msk$w"
106       if getline('.')[col('.')-1] != '"' 
107         execute "normal `s"
108         return
109       elseif getline('.')[col('$')-2] != '"'
110         while getline('.')[col('$')-2] == ' '
111           execute "normal $x"
112         endw
113         if getline('.')[col('$')-2] != '"'
114           let l:f_comtype = 1   " 1 为单个,2为多个"
115         endif
116       else
117       endif
118       while getline('.')[0] == ' '
119         execute "normal 0x"
120       endw
121       if l:f_comtype == 1
122         execute "normal k$wx"
123         return
124       elseif l:f_comtype == 2
125         execute "normal k$wx<esc>$x<esc>"
126         return
127       endif
128       if getline('.')[col('.')-1] == '"'
129          
130       else
131       endif
132     endif
133 endf
134 " AddComment "
135 function! AddComment()
136   if &filetype == "cpp" || &filetype == "c"
137       if getline(1)[0] == '/'
138         return
139       endif
140       call append(0,"/***************************************************************")
141       call append(1,"" File Name     : ".expand("%:t"))
142       call append(2,"" Author        : skytrails")
143       call append(3,"" Email         : skytrails@163.com")
144       call append(4,"" Create Time   : ".strftime("%Y-%m-%d %H:%M"))
145       call append(5,"***************************************************************/")
146   elseif &filetype  == "vim"
147       if getline(1)[0] == '"'
148         return
149       endif
150       call append(0,""***************************************************************")
151       call append(1,"" File Name     : ".expand("%"))
152       call append(2,"" Author        : skytrails")
153       call append(3,"" Email         : skytrails@163.com")
154       call append(4,"" Create Time   : ".strftime("%Y-%m-%d %H:%M"))
155       call append(5,""***************************************************************")
156   elseif &filetype == "make"
157       if getline(1)[0] == '#'
158         return
159       endif
160       call append(0, "###############################################################")
161       call append(1,"# File Name     : ".expand("%"))
162       call append(2,"# Author        : skytrails")
163       call append(3,"# Email         : skytrails@163.com")
164       call append(4,"# Create Time   : ".strftime("%Y-%m-%d %H:%M"))
165       call append(5,"################################################################")
166   else
167   endif
168 endf
169 
170 autocmd FileType c,cpp,make,vim :call SetFileEnv()
171 func! SetFileEnv()
172     if &filetype == 'cpp' || &filetype == 'c' || &filetype == 'vim'
173       set expandtab
174       set cindent shiftwidth=4 " 当行之间交错时使用4个空格
175     elseif &filetype == 'make' 
176     endif
177 endf
178 
179 "debug  vim下设置自定义命令
180 "command! Debug :so ~/.vimrc
181 
182 "vim下提交本地$HOME/.vimrc到svn版本库
183 command! Ci :!svn ci $SVN_VIMRC_FILE
184 command! Ch :!svn ci $SVN_LOGIN_PATH

vim巧用:

xd   交换两个相邻字符

ddp 交换上下两行

表 1. Vimscript 变量范围
前缀含义
g:varname 变量为全局变量
s:varname 变量的范围为当前的脚本文件
w:varname 变量的范围为当前的编辑器窗口
t:varname 变量的范围为当前的编辑器选项卡
b:varname 变量的范围为当前的编辑器缓冲区
l:varname 变量的范围为当前的函数
a:varname 变量是当前函数的一个参数
v:varname 变量是 Vim 的预定义变量

=-=-=-=-=
Powered by Blogilo

..... created by skytrails
原文地址:https://www.cnblogs.com/skytrails/p/4790494.html