分享

配置个性化 vim

 bubbi7 2017-02-04
  1. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
  2. " 一般设定  
  3. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
  4. " 设定默认解码  
  5. set fenc=utf-8  
  6. set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936  
  7.   
  8. " 设置颜色  
  9. colorscheme desert  
  10.   
  11. "set guifont=Nimbus\ Mono\ L\ 12  
  12. "set guifont=WenQuanYi\ Bitmap\ Song\ 12  
  13. "set guifont=Verdana\ 10  
  14. "set guifont=Courier\ 11  
  15. set guifont=Bitstream\ Vera\ Sans\ Mono\ 10  
  16.   
  17. " 不要使用 vi 的键盘模式,而是 vim 自己的  
  18. set nocompatible  
  19.   
  20. " history 文件中需要记录的行数  
  21. set history=100  
  22.   
  23. " 在处理未保存或只读文件的时候,弹出确认  
  24. set confirm  
  25.   
  26. " 与 windows 共享剪贴板  
  27. set clipboard+=unnamed  
  28.   
  29. " 侦测文件类型  
  30. filetype on  
  31.   
  32. " 载入文件类型插件  
  33. filetype plugin on  
  34.   
  35. " 为特定文件类型载入相关缩进文件  
  36. filetype indent on  
  37.   
  38. " 保存全局变量  
  39. set viminfo+=!  
  40.   
  41. " 带有如下符号的单词不要被换行分割  
  42. set iskeyword+=_,$,@,%,#,-  
  43.   
  44. " 语法高亮  
  45. syntax on  
  46.   
  47. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
  48. """"""高亮显示 gtk 关键字""""""  
  49. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
  50. syntax keyword gtkType gint gshort guint gushort gulong gdouble gfloat gchar guchar gboolean gpointer  
  51. highlight link gtkType Type  
  52.   
  53.   
  54.   
  55. " 高亮字符,让其不受 100 列限制  
  56. highlight OverLength ctermbg=red ctermfg=white guibg=red guifg=white  
  57. match OverLength '\%101v.*'  
  58.   
  59. " 状态行颜色  
  60. highlight StatusLine guifg=SlateBlue guibg=Yellow  
  61. highlight StatusLineNC guifg=Gray guibg=White  
  62.   
  63. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
  64. " 文件设置  
  65. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
  66. " 不要备份文件(根据自己需要取舍)  
  67. set nobackup  
  68.   
  69. " 不要生成 swap 文件,当 buffer 被丢弃的时候隐藏它  
  70. setlocal noswapfile  
  71. set bufhidden=hide  
  72.   
  73. " 字符间插入的像素行数目  
  74. set linespace=0  
  75.   
  76. " 增强模式中的命令行自动完成操作  
  77. set wildmenu  
  78.   
  79. " 在状态行上显示光标所在位置的行号和列号  
  80. set ruler  
  81. set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%)  
  82.   
  83. " 命令行(在状态行下)的高度,默认为 1,这里是 2  
  84. set cmdheight=2  
  85.   
  86. " 使回格键(backspace)正常处理 indent, eol, start 等  
  87. set backspace=2  
  88.   
  89. " 允许 backspace 和光标键跨越行边界  
  90. set whichwrap+=<,>,h,l  
  91.   
  92. " 可以在 buffer 的任何地方使用鼠标(类似 office 中在工作区双击鼠标定位)  
  93. set mouse=a  
  94. set selection=exclusive  
  95. set selectmode=mouse,key  
  96.   
  97. " 启动的时候不显示那个援助索马里儿童的提示  
  98. set shortmess=atI  
  99.   
  100. " 通过使用: commands 命令,告诉我们文件的哪一行被改变过  
  101. set report=0  
  102.   
  103. " 不让 vim 发出讨厌的滴滴声  
  104. set noerrorbells  
  105.   
  106. " 在被分割的窗口间显示空白,便于阅读  
  107. set fillchars=vert:\ ,stl:\ ,stlnc:\  
  108.   
  109. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
  110. " 搜索和匹配  
  111. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
  112. " 高亮显示匹配的括号  
  113. set showmatch  
  114.   
  115. " 匹配括号高亮的时间(单位是十分之一秒)  
  116. set matchtime=5  
  117.   
  118. " 在搜索的时候忽略大小写  
  119. set ignorecase  
  120.   
  121. " 不要高亮被搜索的句子(phrases)  
  122. set nohlsearch  
  123.   
  124. " 在搜索时,输入的词句的逐字符高亮(类似 firefox 的搜索)  
  125. set incsearch  
  126.   
  127. " 输入: set list 命令是应该显示些啥?  
  128. set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$  
  129.   
  130. " 光标移动到 buffer 的顶部和底部时保持 3 行距离  
  131. set scrolloff=3  
  132.   
  133. " 不要闪烁  
  134. set novisualbell  
  135.   
  136. " 我的状态行显示的内容(包括文件类型和解码)  
  137. set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}  
  138.   
  139. " 总是显示状态行  
  140. set laststatus=2  
  141.   
  142. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
  143. " 文本格式和排版  
  144. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
  145. " 自动格式化  
  146. set formatoptions=tcrqn  
  147.   
  148. " 继承前一行的缩进方式,特别适用于多行注释  
  149. set autoindent  
  150.   
  151. " 为 C 程序提供自动缩进  
  152. set smartindent  
  153.   
  154. " 使用 C 样式的缩进  
  155. set cindent  
  156.   
  157. " 制表符为 4  
  158. set tabstop=4  
  159.   
  160. " 统一缩进为 4  
  161. set softtabstop=4  
  162. set shiftwidth=4  
  163.   
  164. " 不要用空格代替制表符  
  165. set noexpandtab  
  166.   
  167. " 不要换行  
  168. set nowrap  
  169.   
  170. " 在行和段开始处使用制表符  
  171. set smarttab  
  172.   
  173. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
  174. " CTags 的设定  
  175. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
  176. " 按照名称排序  
  177. let Tlist_Sort_Type = "name"  
  178.   
  179. " 在右侧显示窗口  
  180. let Tlist_Use_Right_Window = 1  
  181.   
  182. " 压缩方式  
  183. let Tlist_Compart_Format = 1  
  184.   
  185. " 如果只有一个 buffer,kill 窗口也 kill 掉 buffer  
  186. let Tlist_Exist_OnlyWindow = 1  
  187.   
  188. " 不要关闭其他文件的 tags  
  189. let Tlist_File_Fold_Auto_Close = 0  
  190.   
  191. " 不要显示折叠树  
  192. let Tlist_Enable_Fold_Column = 0  
  193.   
  194. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
  195. " Autocommands  
  196. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
  197. " 只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示  
  198.   
  199. if has("autocmd")  
  200.     autocmd FileType xml,html,c,cs,java,perl,shell,bash,cpp,python,vim,php,ruby set number  
  201.     autocmd FileType xml,html vmap <C-o> <ESC>'<i<!--<ESC>o<ESC>'>o-->  
  202.     autocmd FileType java,c,cpp,cs vmap <C-o> <ESC>'<o/*<ESC>'>o*/  
  203.     autocmd FileType html,text,php,vim,c,java,xml,bash,shell,perl,python setlocal textwidth=100  
  204.     autocmd Filetype html,xml,xsl source $VIMRUNTIME/plugin/closetag.vim  
  205.                 \ if line("'\"") > 0 && line("'\"") <= line("{1}quot;) |  
  206.                 \   exe "normal g`\"" |  
  207.                 \ endif  
  208. endif "has("autocmd")  
  209.   
  210. " F5 编译和运行 C 程序,F6 编译和运行 C++ 程序  
  211. " 请注意,下述代码在 windows 下使用会报错  
  212. " 需要去掉./ 这两个字符  
  213.   
  214. " C 的编译和运行  
  215. map <F5> :call CompileRunGcc()<CR>  
  216. func! CompileRunGcc()  
  217.     exec "w"  
  218.     exec "!gcc % -o %<"  
  219.     exec "! ./%<"  
  220. endfunc  
  221.   
  222. " C++ 的编译和运行  
  223. map <F6> :call CompileRunGpp()<CR>  
  224. func! CompileRunGpp()  
  225.     exec "w"  
  226.     exec "!g++ % -o %<"  
  227.     exec "! ./%<"  
  228. endfunc  
  229.   
  230. " 能够漂亮地显示. NFO 文件  
  231. set encoding=utf-8  
  232. function! SetFileEncodings(encodings)  
  233.     let b:myfileencodingsbak=&fileencodings  
  234.     let &fileencodings=a:encodings  
  235. endfunction  
  236. function! RestoreFileEncodings()  
  237.     let &fileencodings=b:myfileencodingsbak  
  238.     unlet b:myfileencodingsbak  
  239. endfunction  
  240.   
  241. au BufReadPre *.nfo call SetFileEncodings('cp437')|set ambiwidth=single  
  242. au BufReadPost *.nfo call RestoreFileEncodings()  
  243.   
  244. " 高亮显示普通 txt 文件(需要 txt.vim 脚本)  
  245. au BufRead,BufNewFile *  setfiletype txt  
  246.   
  247. " 用空格键来开关折叠  
  248. set foldenable  
  249. "set foldmethod=manual  
  250. set foldmethod=syntax  
  251. set foldlevel=100  
  252. nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>  
  253.   
  254. " minibufexpl 插件的一般设置  
  255. let g:miniBufExplMapWindowNavVim = 1  
  256. let g:miniBufExplMapWindowNavArrows = 1  
  257. let g:miniBufExplMapCTabSwitchBufs = 1  
  258. let g:miniBufExplModSelTarget = 1   
  259.   
  260. " 设置快捷方式 Set mapleader  
  261. let mapleader = ","  
  262.   
  263. "快捷加载, 当输入",ss" 时,加载  .vimrc 文件  
  264. map <silent> <leader>ss :source ~/.vimrc<cr>  
  265. " 快速打开编辑 .vimrc 配置文件 --->",ee"  
  266. map <silent> <leader>ee :e ~/.vimrc<cr>  
  267. " 快速保存文件 --->",w"  
  268. map <silent> <leader>w :w<cr>  
  269. " 快速保存并退出文件 --->",w"  
  270. map <silent> <leader>wq :wq<cr>  
  271.   
  272. " 自动命令,每次写入. vimrc 后,都会执行这个自动命令,source 一次~/.vimrc  
  273. autocmd! bufwritepost .vimrc source ~/.vimrc   


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多