Advertisement
Guest User

Untitled

a guest
Jul 24th, 2016
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.57 KB | None | 0 0
  1. "gvim配置
  2. if has("gui_running")
  3. let $LANG='en' "设置gvim菜单栏始终显示为英文
  4. set langmenu=en
  5. source $VIMRUNTIME/delmenu.vim
  6. source $VIMRUNTIME/menu.vim
  7. "set guifont=DejaVu\ Sans\ Mono\ for\ Powerline\ Book\ 10
  8. "set guifont=DejaVu\ Sans\ Mono\ Book\ 10
  9. set guifont=Droid\ Sans\ Mono\ Book\ 10
  10. set guioptions-=e
  11. set guioptions-=m
  12. set guioptions-=T
  13. set guioptions-=L
  14. set guioptions-=r
  15. set guioptions-=B
  16. set guioptions-=0
  17. set go=
  18. winpos 1000 0
  19. "set lines=100 columns=150 "开启时的窗口默认大小
  20. endif
  21.  
  22. syntax on "语法高亮支持
  23. set nu "显示行号
  24. set rnu "显示相对行号
  25. set wrap "当一行文字很长时换行
  26. set showmatch "当光标移动到一个括号时会高亮显示对应的另一个括号
  27. set showcmd "回显输入的命令
  28. set showmode "显示当前的模式
  29. set clipboard+=unnamed "关联系统的剪贴板
  30. set ruler "在编辑过程中右下角显示光标的行列信息
  31. set nocp "让Vim工作在不兼容模式下
  32. set encoding=utf-8 "默认使用utf-8编码格式
  33. set shortmess=atI "启动时不显示捐助乌干达儿童的提示
  34. set so=6 "上下滚行时空余6行
  35. set autoindent "自动套用上一行的缩进方式
  36. set smartindent "智能缩进
  37. set mouse=a "开启鼠标支持
  38. set laststatus=2 "总是显示状态行
  39. set backspace=indent,eol,start "对退格键提供更好的支持
  40. set ts=4 "设置tab长度为4
  41. set sts=4 "设置制表符宽度
  42. set shiftwidth=4 "设置缩进空格数
  43. set expandtab "用空格代替tab键
  44. set smarttab "更加智能的tab键
  45. set hid "当buffer被丢弃时隐藏它
  46. set encoding=utf-8 "设置默认编码方式
  47. set fileencodings=utf-8,cp936,gb18030,big5,euc-kr,latin1 "自动判断编码时 依次尝试一下编码
  48. set ffs=unix,dos,mac "设置文件类型
  49. set hlsearch "高亮搜索内容
  50. set ignorecase "搜索模式里忽略大小写
  51. set smartcase "如果搜索字符串里包含大写字母,则禁用 ignorecase
  52. set incsearch "显示搜索的动态匹配效果
  53. set lazyredraw "解决某些类型的文件由于syntax导致vim反应过慢的问题
  54. set ttyfast
  55. set cc=130
  56. set foldmethod=indent "折叠方式
  57. set nofoldenable "不自动折叠
  58. set completeopt-=preview "不显示预览窗口
  59. set foldcolumn=1 "在行号前空出一列的宽度
  60. set t_Co=256 "设置256真彩色
  61. set cm=blowfish2 "使用blowfish2加密算法
  62. "set nowrap "当一行文字很长时取消换行
  63. "set history=100 "设置历史记录条数
  64. "set autoread "当文件在外部被修改时自动载入
  65. "set cindent "使用c语言的缩进格式
  66. "set whichwrap+=<,>,h,l "允许backspace和光标键跨越行边界
  67. "set cmdheight=2 "显示两行命令行
  68.  
  69. "设置vim主题外观
  70. colorscheme desert "设置desert高亮主题
  71. "set background=light "设置vim背景为浅色
  72. set background=dark "设置vim背景为深色
  73. set cursorline "突出显示当前行
  74. "set cursorcolumn "突出显示当前列
  75.  
  76. set list lcs=tab:\┊\ ,trail:• "显示tab键为┊,并且显示每行结尾的空格为'•'
  77. "一些备用字符:›┆┇┊┋♠♦•
  78. "我的状态行显示的内容
  79. set statusline=[%t]\ %y\ %m%=%{&fileencoding}\ [%{&ff}]\ [%l,\ %c]\ [%L]\ [%p%%]
  80.  
  81. "备份设置
  82. "set nobackup "不进行备份
  83. "set nowb "重新载入文件时不要备份
  84. "set noswapfile "不使用swf文件,可能导致错误无法恢复
  85.  
  86. "关闭错误声音
  87. set noerrorbells
  88. set novisualbell
  89. set t_vb=
  90.  
  91. "打开一个文件自动定位到上一次退出的位置
  92. if has("autocmd")
  93. au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
  94. endif
  95. "保存.vim文件后不用退出即可生效
  96. "au! bufwritepost .vimrc source %
  97.  
  98. "设置vim主题外观
  99. colorscheme gruvbox "设置gruvbox高亮主题
  100. "set cursorline "突出显示当前行
  101. "set cursorcolumn "突出显示当前列
  102.  
  103. "hi CursorLine cterm=NONE ctermbg=237 ctermfg=NONE
  104. "hi CursorColumn cterm=NONE ctermbg=237 ctermfg=NONE
  105.  
  106. hi vertsplit ctermbg=bg guibg=bg
  107. hi GitGutterAdd ctermbg=bg guibg=bg
  108. hi GitGutterChange ctermbg=bg guibg=bg
  109. hi GitGutterDelete ctermbg=bg guibg=bg
  110. hi GitGutterChangeDelete ctermbg=bg guibg=bg
  111. hi SyntasticErrorSign ctermbg=bg guibg=bg
  112. hi SyntasticWarningSign ctermbg=bg guibg=bg
  113. hi FoldColumn ctermbg=bg guibg=bg
  114.  
  115. "NERDTree插件配置
  116. let NERDTreeChDirMode=2 "设置当前目录为nerdtree的起始目录
  117. let NERDChristmasTree=1 "使得窗口有更好看的效果
  118. let NERDTreeMouseMode=1 "双击鼠标左键打开文件
  119. let NERDTreeWinSize=35 "设置窗口宽度为20
  120. let NERDTreeQuitOnOpen=1 "打开一个文件时nerdtree分栏自动关闭
  121. let NERDTreeShowBookmarks=1 "默认显示书签
  122.  
  123. "ctags插件配置
  124. set tags+=/usr/include/tags
  125.  
  126. "cscope插件配置
  127. if has("cscope")
  128. "set csprg=/usr/bin/cscope
  129. set csto=0
  130. set cst
  131. set nocsverb
  132. set cscopequickfix=s-,c-,d-,i-,t-,e- "在quickfix窗口中显示搜索结果
  133.  
  134.  
  135. " add any database in current directory
  136. if filereadable("cscope.out")
  137. cs add cscope.out
  138. " else add database pointed to by environment
  139. elseif $CSCOPE_DB != ""
  140. cs add $CSCOPE_DB
  141. endif
  142. set csverb
  143. endif
  144.  
  145. "syntastic插件配置
  146. set statusline+=%#warningmsg#
  147. set statusline+=%{SyntasticStatuslineFlag()}
  148. set statusline+=%*
  149. let g:syntastic_always_populate_loc_list = 1
  150. let g:syntastic_auto_loc_list = 1
  151. let g:syntastic_check_on_open = 1
  152. let g:syntastic_check_on_wq = 1
  153. let g:syntastic_error_symbol = '✗'
  154. let g:syntastic_warning_symbol = '⚡'
  155. "let g:syntastic_cpp_include_dirs = ['/usr/include/qt']
  156. "let g:syntastic_cpp_compiler_options = '-std=gnu++11 -Wall'
  157. let g:syntastic_mode_map = { 'mode': 'passive', 'active_filetypes': [],'passive_filetypes': [] }
  158.  
  159. "youcompleteme自动补全配置
  160. let g:loaded_youcompleteme=1
  161. let g:ycm_seed_identifiers_with_syntax=1
  162. let g:ycm_collect_identifiers_from_tags_files=1
  163. let g:ycm_error_symbol = '✗'
  164. let g:ycm_warning_symbol = '⚡'
  165. let g:ycm_add_preview_to_completeopt = 0 "不显示预览窗口
  166. "let g:ycm_autoclose_preview_window_after_insertion = 1
  167. "let g:ycm_autoclose_preview_window_after_completion = 1
  168. let g:ycm_key_list_select_completion = ['<c-n>', '<Down>', '<CR>']
  169. let g:ycm_key_list_previous_completion = ['<c-p>', '<Up>']
  170. let g:ycm_semantic_triggers = {
  171. \ 'c' : ['->', '.', ' ', '(', '[', '&'],
  172. \ 'objc' : ['->', '.'],
  173. \ 'ocalml' : ['.', '#'],
  174. \ 'cpp,objcpp' : ['->', '.', ' ', '(', '[', '&', '::'],
  175. \ 'perl' : ['->', '::'],
  176. \ 'php' : ['->', '::', '.'],
  177. \ 'cs,java,javascript,d,python,perl6,scala,vb,elixir,go' : ['.'],
  178. \ 'vim' : ['re![_a-zA-Z]+[_\w]*\.'],
  179. \ 'ruby' : ['.', '::'],
  180. \ 'lua' : ['.', ':'],
  181. \ 'erlang' : ['.', ':']
  182. \ }
  183.  
  184. "UltiSnips插件配置
  185. let g:UltiSnipsExpandTrigger="<tab>"
  186. ""let g:UltiSnipsJumpForwardTrigger="<tab>"
  187. ""let g:UltiSnipsJumpBackwardTrigger="<s-tab>"
  188. let g:UltiSnipsEditSplit = "vertical"
  189. "let g:UltiSnipsSnippetDirectories = ["UltiSnips", "bundle/snippets"]
  190. let g:UltiSnipsSnippetDirectories = ["bundle/snippets"]
  191.  
  192. "rainbow_parentheses插件配置
  193. let g:rbpt_colorpairs = [
  194. \ ['brown', 'RoyalBlue3'],
  195. \ ['Darkblue', 'SeaGreen3'],
  196. \ ['darkgray', 'DarkOrchid3'],
  197. \ ['darkgreen', 'firebrick3'],
  198. \ ['darkcyan', 'RoyalBlue3'],
  199. \ ['darkred', 'SeaGreen3'],
  200. \ ['darkmagenta', 'DarkOrchid3'],
  201. \ ['brown', 'firebrick3'],
  202. \ ['gray', 'RoyalBlue3'],
  203. \ ['black', 'SeaGreen3'],
  204. \ ['darkred', 'DarkOrchid3'],
  205. \ ['darkmagenta', 'DarkOrchid3'],
  206. \ ['Darkblue', 'firebrick3'],
  207. \ ['darkgreen', 'RoyalBlue3'],
  208. \ ['darkcyan', 'SeaGreen3'],
  209. \ ['red', 'firebrick3'],
  210. \ ]
  211. let g:rbpt_max = 16
  212. let g:rbpt_loadcmd_toggle = 0
  213. au VimEnter * RainbowParenthesesToggle
  214. au Syntax * RainbowParenthesesLoadRound
  215. au Syntax * RainbowParenthesesLoadSquare
  216. au Syntax * RainbowParenthesesLoadBraces
  217.  
  218. "vim-multiple-cursors插件配置
  219. let g:multi_cursor_use_default_mapping=0
  220. let g:multi_cursor_next_key='<C-m>'
  221. let g:multi_cursor_prev_key='<C-p>'
  222. let g:multi_cursor_skip_key='<C-x>'
  223. let g:multi_cursor_quit_key='<Esc>'
  224.  
  225. "airline插件配置
  226. let g:airline_powerline_fonts=1 "配置airline使用powerline字体
  227.  
  228. "vimwiki插件配置
  229. "let g:vimwiki_list = [{'path' : '~/.vimwiki/',
  230. " \'template_path' : '~/.vimwiki/template/',
  231. " \'template_default' : 'default_template',
  232. " \'template_ext' : '.html',
  233. " \'path_html': '~/.vimwiki/html/'}
  234. " \]
  235.  
  236. "mru插件配置
  237. let MRU_Auto_Close = 1
  238. let MRU_Max_Entries = 40
  239.  
  240. "设置以空格打开和关闭折叠
  241. nmap <space> @=((foldclosed(line('.'))<0)?'zc':'zo')<CR>
  242. "当一行很长时把分开的段行当作一行来移动
  243. map j gj
  244. map k gk
  245. "将Esc键映射到jj
  246. im jj <Esc>
  247. im JJ <Esc>
  248. im zz <Esc>
  249. map zz <Esc>
  250. im ZZ <Esc>
  251. map ZZ <Esc>
  252. "quickfix相关的一些快捷键
  253. map cop :copen<CR>
  254. map ccl :cclose<CR>
  255. map cn :cn<CR>
  256. map cp :cp<CR>
  257. "emacs式的行内跳转
  258. map <c-a> ^
  259. map <c-e> $
  260. imap <c-a> <Esc>^i
  261. imap <c-e> <Esc>$a
  262. "ff跳转到文件末尾
  263. map ff G
  264. "visual模式下快速对齐
  265. vnoremap < <gv
  266. vnoremap > >gv
  267.  
  268. map <F4> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
  269. im <F4> <Esc>:!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
  270. nmap go g<C-]>
  271. nmap bk <C-t>
  272.  
  273. nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR>
  274. nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR>
  275. nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR>
  276. nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR>
  277. nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR>
  278. nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
  279. nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
  280. nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR>
  281.  
  282. "<F5>更新cscope文件
  283. map <F5> :!cscope -Rbq<CR>
  284. im <F5> <Esc>:!cscope -Rbq<CR>
  285.  
  286. map <F6> :SyntasticCheck<CR>
  287. im <F6> <Esc>:SyntasticCheck<CR>
  288.  
  289. "修改<leader>的键盘映射
  290. nmap , <leader>
  291. "当按下\+Enter时取消搜索高亮
  292. map <silent> <leader><CR> :noh<CR>
  293. "Unite插件配置
  294. map <Leader>b :Unite -winheight=10 buffer<CR>
  295. map <Leader>r :MRU<CR>
  296. map <leader>f :NERDTreeToggle<CR>
  297. "Tagbar插件配置
  298. let g:tagbar_autoclose=1
  299. map <leader>t :TagbarToggle<CR>
  300. "设置文件类型辅助
  301. map <leader>s :setfiletype
  302. "更方便的窗口间跳转
  303. map <leader>j <c-w>j
  304. map <leader>k <c-w>k
  305. map <leader>l <c-w>l
  306. map <leader>h <c-w>h
  307. map <C-j> <c-w>j
  308. map <C-k> <c-w>k
  309. map <C-l> <c-w>l
  310. map <C-h> <c-w>h
  311. "vimux插件配置
  312. map <Leader>e :VimuxPromptCommand<CR>
  313. map <Leader>x :VimuxCloseRunner<CR>
  314. map <Leader>vl :VimuxRunLastCommand<CR>
  315. map <Leader>vi :VimuxInspectRunner<CR>
  316. "更方便的页滚动
  317. map <C-j> <C-f>
  318. map <C-k> <C-b>
  319.  
  320. map ,,j <Plug>(easymotion-w)
  321. map ,,k <Plug>(easymotion-b)
  322. map ,,s <Plug>(easymotion-s)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement