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