1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415
| " All system-wide defaults are set in $VIMRUNTIME/debian.vim and sourced by " the call to :runtime you can find below. If you wish to change any of those " settings, you should do it in this file (/etc/vim/vimrc), since debian.vim " will be overwritten everytime an upgrade of the vim packages is performed. " It is recommended to make changes after sourcing debian.vim since it alters " the value of the 'compatible' option.
" This line should not be removed as it ensures that various options are " properly set to work with the Vim-related packages available in Debian. runtime! debian.vim
" Vim will load $VIMRUNTIME/defaults.vim if the user does not have a vimrc. " This happens after /etc/vim/vimrc(.local) are loaded, so it will override " any settings in these files. " If you don't want that to happen, uncomment the below line to prevent " defaults.vim from being loaded. " let g:skip_defaults_vim = 1
" Uncomment the next line to make Vim more Vi-compatible " NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous " options, so any other options should be set AFTER setting 'compatible'. "set compatible
" Vim5 and later versions support syntax highlighting. Uncommenting the next " line enables syntax highlighting by default. if has("syntax") syntax on endif
" If using a dark background within the editing area and syntax highlighting " turn on this option as well "set background=dark
" Uncomment the following to have Vim jump to the last position when " reopening a file "if has("autocmd") " au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif "endif
" Uncomment the following to have Vim load indentation rules and plugins " according to the detected filetype. "if has("autocmd") " filetype plugin indent on "endif
" 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 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)
" Source a global configuration file if available if filereadable("/etc/vim/vimrc.local") source /etc/vim/vimrc.local endif " append myself custom """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 一般设定 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 设定默认解码 set fenc=utf-8 set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
" 不要使用vi的键盘模式,而是vim自己的 "set nocompatible " 设置行号的显示 set number " history文件中需要记录的行数 set history=100
" 在处理未保存或只读文件的时候,弹出确认 set confirm
" 与windows共享剪贴板 set clipboard+=unnamed
" 侦测文件类型 filetype on
" 载入文件类型插件 filetype plugin on
" 为特定文件类型载入相关缩进文件 filetype indent on
" 带有如下符号的单词不要被换行分割 set iskeyword+=_,$,@,%,#,-
" 语法高亮 syntax on
" 高亮字符,让其不受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 expandtab " 如果改成set noexpandtab就是不用四个空格代替一个table
" 不要换行 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 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示
map <F5> :call TitleDet2() <cr> function AddTitle2() call append(0,"/************************************************************") call append(1," * Author : jiujue") call append(2," * Email : [email protected] ") call append(3," * Last modified : ".strftime("%Y-%m-%d %H:%M")) call append(4," * Filename : ".expand("%:t")) call append(5," * Description :" ) call append(6," * *********************************************************/") echohl WarningMsg |echo "Successful in adding the copyright." | echohl None endf
function UpdateTitle2() normal m' execute '/ normal '' normal mk execute '/# *Filename:/s@:.*$@\=":\t\t".expand("%:t")@' execute "noh" normal 'k echohl WarningMsg | echo "Successful in updating the copy right." | echohl None endfunction
function TitleDet2() let n=1 while n < 7 let line = getline(n) if line =~ '^\ call UpdateTitle2() return endif let n = n+1 endwhile call AddTitle2() endfunction
autocmd BufNewFile *.c,*.py,*.cpp,*.sh,*.java exec ":call SetTitle()" func SetTitle()
if &filetype == 'sh' call setline(1,"\#!/bin/bash") call append(line("."), "# Author: jiujue") //你的昵称 call append(line(".")+1, "# Created Time: ".strftime("%c")) call append(line(".")+2, "") elseif &filetype == 'cpp' call setline(1,"// File Name: ".expand("%")) call append(line("."), "// Author: jiujue")//你的昵称 call append(line(".")+1, "// Created Time: ".strftime("%c")) call append(line(".")+2, "") call append(line(".")+3, "#include<vector>") call append(line(".")+4, "#include<list>") call append(line(".")+5, "#include<map>") call append(line(".")+6, "#include<set>") call append(line(".")+7, "#include<deque>") call append(line(".")+8, "#include<stack>") call append(line(".")+9, "#include<bitset>") call append(line(".")+10, "#include<algorithm>") call append(line(".")+11, "#include<functional>") call append(line(".")+12, "#include<numeric>") call append(line(".")+13, "#include<utility>") call append(line(".")+14, "#include<sstream>") call append(line(".")+15, "#include<iostream>") call append(line(".")+16, "#include<iomanip>") call append(line(".")+17, "#include<cstdio>") call append(line(".")+18, "#include<cmath>") call append(line(".")+19, "#include<cstdlib>") call append(line(".")+20, "#include<cstring>") call append(line(".")+21, "#include<ctime>") call append(line(".")+22, "") call append(line(".")+23, "using namespace std;") call append(line(".")+24, "") call append(line(".")+25, "int main(int argc, const char* argv[]") call append(line(".")+26, "{") call append(line(".")+27, " return 0;") call append(line(".")+28, "}")
elseif &filetype == 'python' call setline(1,"\#!/usr/bin/env python") call append(line("."), "# Author: jiujue")//你的昵称 call append(line(".")+1, "# Created Time: ".strftime("%c")) call append(line(".")+2, "") elseif &filetype == 'c' call setline(1,"// File Name: ".expand("%")) call append(line("."), "// Author: jiujue")//你的昵称 call append(line(".")+1, "// Created Time: ".strftime("%c")) call append(line(".")+2, "") call append(line(".")+3,"#include<stdio.h>") call append(line(".")+4,"#include<string.h>") call append(line(".")+5,"#include<stdlib.h>") call append(line(".")+6,"#include<time.h>") call append(line(".")+7,"#include<math.h>") call append(line(".")+8,"") call append(line(".")+9,"int main(int argc, const char* argv[])") call append(line(".")+10,"{") call append(line(".")+11," return 0 ;") call append(line(".")+12,"}") else call setline(1,"/*") call append(line("."), "* Author: rechen") call append(line(".")+1, "* Created Time: ".strftime("%c")) call append(line(".")+2, "*/") call append(line(".")+3, "") endif
autocmd BufNewFile * normal G 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 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
"myself append " YCM " 允许自动加载.ycm_extra_conf.py,不再提示 let g:ycm_confirm_extra_conf=0 " 补全功能在注释中同样有效 let g:ycm_complete_in_comments=1 " 开启tags补全引擎 let g:ycm_collect_identifiers_from_tags_files=1 " 键入第一个字符时就开始列出匹配项 let g:ycm_min_num_of_chars_for_completion=1 " YCM相关快捷键,分别是\gl, \gf, \gg nnoremap <leader>gl :YcmCompleter GoToDeclaration<CR> nnoremap <leader>gf :YcmCompleter GoToDefinition<CR> nnoremap <leader>gg :YcmCompleter GoToDefinitionElseDeclaration<CR>
set tags+=/data/misc/vim/stdcpp.tags
set completeopt=menu
"默认打开Taglist let Tlist_Auto_Open=1 """""""""""""""""""""""""""""" " Tag list (ctags) """""""""""""""""""""""""""""""" let Tlist_Ctags_Cmd = '/usr/bin/ctags' let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的 let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim let Tlist_Use_Right_Window = 1 "在右侧窗口中显示taglist窗口 " minibufexpl插件的一般设置 let g:miniBufExplMapWindowNavVim = 1 let g:miniBufExplMapWindowNavArrows = 1 let g:miniBufExplMapCTabSwitchBufs = 1 let g:miniBufExplModSelTarget = 1
|