vim

xiaoxiao2021-02-28  191

" ----------------------------------------------------------------------------- " File: gruvbox.vim " Description: Retro groove color scheme for Vim " Author: morhetz <morhetz@gmail.com> " Source: https://github.com/morhetz/gruvbox " Last Modified: 04 Sep 2015 " ----------------------------------------------------------------------------- " Supporting code ------------------------------------------------------------- " Initialisation: {{{ if version > 580 hi clear if exists("syntax_on") syntax reset endif endif let g:colors_name='gruvbox' if !has('gui_running') && &t_Co != 256 finish endif " }}} " Global Settings: {{{ if !exists('g:gruvbox_bold') let g:gruvbox_bold=1 endif if !exists('g:gruvbox_italic') if has('gui_running') || $TERM_ITALICS == 'true' let g:gruvbox_italic=1 else let g:gruvbox_italic=0 endif endif if !exists('g:gruvbox_undercurl') let g:gruvbox_undercurl=1 endif if !exists('g:gruvbox_underline') let g:gruvbox_underline=1 endif if !exists('g:gruvbox_inverse') let g:gruvbox_inverse=1 endif if !exists('g:gruvbox_guisp_fallback') || index(['fg', 'bg'], g:gruvbox_guisp_fallback) == -1 let g:gruvbox_guisp_fallback='NONE' endif if !exists('g:gruvbox_improved_strings') let g:gruvbox_improved_strings=0 endif if !exists('g:gruvbox_improved_warnings') let g:gruvbox_improved_warnings=0 endif if !exists('g:gruvbox_termcolors') let g:gruvbox_termcolors=256 endif if !exists('g:gruvbox_invert_indent_guides') let g:gruvbox_invert_indent_guides=0 endif if exists('g:gruvbox_contrast') echo 'g:gruvbox_contrast is deprecated; use g:gruvbox_contrast_light and g:gruvbox_contrast_dark instead' endif if !exists('g:gruvbox_contrast_dark') let g:gruvbox_contrast_dark='medium' endif if !exists('g:gruvbox_contrast_light') let g:gruvbox_contrast_light='medium' endif let s:is_dark=(&background == 'dark') " }}} " Palette: {{{ " setup palette dictionary let s:gb = {} " fill it with absolute colors let s:gb.dark0_hard = ['#1d2021', 234] " 29-32-33 let s:gb.dark0 = ['#1d2021', 234] " 29-32-33 let s:gb.dark0_soft = ['#1d2021', 234] " 29-32-33 let s:gb.dark1 = ['#1d2021', 234] " 29-32-33 let s:gb.dark2 = ['#1d2021', 234] " 29-32-33 let s:gb.dark3 = ['#1d2021', 234] " 29-32-33 let s:gb.dark4 = ['#1d2021', 234] " 29-32-33 let s:gb.dark4_256 = ['#1d2021', 234] " 29-32-33 let s:gb.gray_245 = ['#928374', 245] " 146-131-116 let s:gb.gray_244 = ['#928374', 244] " 146-131-116 let s:gb.light0_hard = ['#f9f5d7', 230] " 249-245-215 let s:gb.light0 = ['#fbf1c7', 229] " 253-244-193 let s:gb.light0_soft = ['#f2e5bc', 228] " 242-229-188 let s:gb.light1 = ['#ebdbb2', 223] " 235-219-178 let s:gb.light2 = ['#d5c4a1', 250] " 213-196-161 let s:gb.light3 = ['#bdae93', 248] " 189-174-147 let s:gb.light4 = ['#a89984', 246] " 168-153-132 let s:gb.light4_256 = ['#a89984', 246] " 168-153-132 let s:gb.bright_red = ['#fb4934', 167] " 251-73-52 let s:gb.bright_green = ['#b8bb26', 142] " 184-187-38 let s:gb.bright_yellow = ['#fabd2f', 214] " 250-189-47 let s:gb.bright_blue = ['#83a598', 109] " 131-165-152 let s:gb.bright_purple = ['#d3869b', 175] " 211-134-155 let s:gb.bright_aqua = ['#8ec07c', 108] " 142-192-124 let s:gb.bright_orange = ['#fe8019', 208] " 254-128-25 let s:gb.neutral_red = ['#cc241d', 124] " 204-36-29 let s:gb.neutral_green = ['#98971a', 106] " 152-151-26 let s:gb.neutral_yellow = ['#d79921', 172] " 215-153-33 let s:gb.neutral_blue = ['#458588', 66] " 69-133-136 let s:gb.neutral_purple = ['#b16286', 132] " 177-98-134 let s:gb.neutral_aqua = ['#689d6a', 72] " 104-157-106 let s:gb.neutral_orange = ['#d65d0e', 166] " 214-93-14 let s:gb.faded_red = ['#9d0006', 88] " 157-0-6 let s:gb.faded_green = ['#79740e', 100] " 121-116-14 let s:gb.faded_yellow = ['#b57614', 136] " 181-118-20 let s:gb.faded_blue = ['#076678', 24] " 7-102-120 let s:gb.faded_purple = ['#8f3f71', 96] " 143-63-113 let s:gb.faded_aqua = ['#427b58', 66] " 66-123-88 let s:gb.faded_orange = ['#af3a03', 130] " 175-58-3 " }}} " Setup Emphasis: {{{ let s:bold = 'bold,' if g:gruvbox_bold == 0 let s:bold = '' endif let s:italic = 'italic,' if g:gruvbox_italic == 0 let s:italic = '' endif let s:underline = 'underline,' if g:gruvbox_underline == 0 let s:underline = '' endif let s:undercurl = 'undercurl,' if g:gruvbox_undercurl == 0 let s:undercurl = '' endif let s:inverse = 'inverse,' if g:gruvbox_inverse == 0 let s:inverse = '' endif " }}} " Setup Colors: {{{ let s:vim_bg = ['bg', 'bg'] let s:vim_fg = ['fg', 'fg'] let s:none = ['NONE', 'NONE'] " determine relative colors let s:bg0 = s:gb.dark0 if g:gruvbox_contrast_dark == 'soft' let s:bg0 = s:gb.dark0_soft elseif g:gruvbox_contrast_dark == 'hard' let s:bg0 = s:gb.dark0_hard endif let s:bg1 = s:gb.dark1 let s:bg2 = s:gb.dark2 let s:bg3 = s:gb.dark3 let s:bg4 = s:gb.dark4 let s:gray = s:gb.gray_245 let s:fg0 = s:gb.light0 let s:fg1 = s:gb.light1 let s:fg2 = s:gb.light2 let s:fg3 = s:gb.light3 let s:fg4 = s:gb.light4 let s:fg4_256 = s:gb.light4_256 let s:red = s:gb.bright_red let s:green = s:gb.bright_green let s:yellow = s:gb.bright_yellow let s:blue = s:gb.bright_blue let s:purple = s:gb.bright_purple let s:aqua = s:gb.bright_aqua let s:orange = s:gb.bright_orange " reset to 16 colors fallback if g:gruvbox_termcolors == 16 let s:bg0[1] = 0 let s:fg4[1] = 7 let s:gray[1] = 8 let s:red[1] = 9 let s:green[1] = 10 let s:yellow[1] = 11 let s:blue[1] = 12 let s:purple[1] = 13 let s:aqua[1] = 14 let s:fg1[1] = 15 endif " save current relative colors back to palette dictionary let s:gb.bg0 = s:bg0 let s:gb.bg1 = s:bg1 let s:gb.bg2 = s:bg2 let s:gb.bg3 = s:bg3 let s:gb.bg4 = s:bg4 let s:gb.gray = s:gray let s:gb.fg0 = s:fg0 let s:gb.fg1 = s:fg1 let s:gb.fg2 = s:fg2 let s:gb.fg3 = s:fg3 let s:gb.fg4 = s:fg4 let s:gb.fg4_256 = s:fg4_256 let s:gb.red = s:red let s:gb.green = s:green let s:gb.yellow = s:yellow let s:gb.blue = s:blue let s:gb.purple = s:purple let s:gb.aqua = s:aqua let s:gb.orange = s:orange " }}} " Overload Setting: {{{ let s:hls_cursor = s:orange if exists('g:gruvbox_hls_cursor') let s:hls_cursor = get(s:gb, g:gruvbox_hls_cursor) endif let s:number_column = s:none if exists('g:gruvbox_number_column') let s:number_column = get(s:gb, g:gruvbox_number_column) endif let s:sign_column = s:bg1 if exists('g:gitgutter_override_sign_column_highlight') && \ g:gitgutter_override_sign_column_highlight == 1 let s:sign_column = s:number_column else let g:gitgutter_override_sign_column_highlight = 0 if exists('g:gruvbox_sign_column') let s:sign_column = get(s:gb, g:gruvbox_sign_column) endif endif let s:color_column = s:bg1 if exists('g:gruvbox_color_column') let s:color_column = get(s:gb, g:gruvbox_color_column) endif let s:vert_split = s:bg2 if exists('g:gruvbox_vert_split') let s:vert_split = get(s:gb, g:gruvbox_vert_split) endif let s:invert_signs = '' if exists('g:gruvbox_invert_signs') if g:gruvbox_invert_signs == 1 let s:invert_signs = s:inverse endif endif let s:invert_selection = s:inverse if exists('g:gruvbox_invert_selection') if g:gruvbox_invert_selection == 0 let s:invert_selection = '' endif endif let s:invert_tabline = '' if exists('g:gruvbox_invert_tabline') if g:gruvbox_invert_tabline == 1 let s:invert_tabline = s:inverse endif endif let s:italicize_comments = s:italic if exists('g:gruvbox_italicize_comments') if g:gruvbox_italicize_comments == 0 let s:italicize_comments = '' endif endif let s:italicize_strings = '' if exists('g:gruvbox_italicize_strings') if g:gruvbox_italicize_strings == 1 let s:italicize_strings = s:italic endif endif " }}} " Highlighting Function: {{{ function! s:HL(group, fg, ...) " Arguments: group, guifg, guibg, gui, guisp " foreground let fg = a:fg " background if a:0 >= 1 let bg = a:1 else let bg = s:none endif " emphasis if a:0 >= 2 && strlen(a:2) let emstr = a:2 else let emstr = 'NONE,' endif " special fallback if a:0 >= 3 if g:gruvbox_guisp_fallback != 'NONE' let fg = a:3 endif " bg fallback mode should invert higlighting if g:gruvbox_guisp_fallback == 'bg' let emstr .= 'inverse,' endif endif let histring = [ 'hi', a:group, \ 'guifg=' . fg[0], 'ctermfg=' . fg[1], \ 'guibg=' . bg[0], 'ctermbg=' . bg[1], \ 'gui=' . emstr[:-2], 'cterm=' . emstr[:-2] \ ] " special if a:0 >= 3 call add(histring, 'guisp=' . a:3[0]) endif execute join(histring, ' ') endfunction " }}} " Gruvbox Hi Groups: {{{ " memoize common hi groups call s:HL('GruvboxFg0', s:fg0) call s:HL('GruvboxFg1', s:fg1) call s:HL('GruvboxFg2', s:fg2) call s:HL('GruvboxFg3', s:fg3) call s:HL('GruvboxFg4', s:fg4) call s:HL('GruvboxGray', s:gray) call s:HL('GruvboxBg0', s:bg0) call s:HL('GruvboxBg1', s:bg1) call s:HL('GruvboxBg2', s:bg2) call s:HL('GruvboxBg3', s:bg3) call s:HL('GruvboxBg4', s:bg4) call s:HL('GruvboxRed', s:red) call s:HL('GruvboxRedBold', s:red, s:none, s:bold) call s:HL('GruvboxGreen', s:green) call s:HL('GruvboxGreenBold', s:green, s:none, s:bold) call s:HL('GruvboxYellow', s:yellow) call s:HL('GruvboxYellowBold', s:yellow, s:none, s:bold) call s:HL('GruvboxBlue', s:blue) call s:HL('GruvboxBlueBold', s:blue, s:none, s:bold) call s:HL('GruvboxPurple', s:purple) call s:HL('GruvboxPurpleBold', s:purple, s:none, s:bold) call s:HL('GruvboxAqua', s:aqua) call s:HL('GruvboxAquaBold', s:aqua, s:none, s:bold) call s:HL('GruvboxOrange', s:orange) call s:HL('GruvboxOrangeBold', s:orange, s:none, s:bold) call s:HL('GruvboxRedSign', s:red, s:sign_column, s:invert_signs) call s:HL('GruvboxGreenSign', s:green, s:sign_column, s:invert_signs) call s:HL('GruvboxYellowSign', s:yellow, s:sign_column, s:invert_signs) call s:HL('GruvboxBlueSign', s:blue, s:sign_column, s:invert_signs) call s:HL('GruvboxPurpleSign', s:purple, s:sign_column, s:invert_signs) call s:HL('GruvboxAquaSign', s:aqua, s:sign_column, s:invert_signs) " }}} " Vanilla colorscheme --------------------------------------------------------- " General UI: {{{ " Normal text call s:HL('Normal', s:fg1, s:bg0) " Correct background (see issue #7): " --- Problem with changing between dark and light on 256 color terminal " --- https://github.com/morhetz/gruvbox/issues/7 if s:is_dark set background=dark else set background=light endif if version >= 700 " Screen line that the cursor is call s:HL('CursorLine', s:none, s:bg1) " Screen column that the cursor is hi! link CursorColumn CursorLine " Tab pages line filler call s:HL('TabLineFill', s:bg4, s:vim_bg, s:invert_tabline) " Active tab page label call s:HL('TabLineSel', s:vim_bg, s:bg4, s:bold . s:invert_tabline) " Not active tab page label hi! link TabLine TabLineFill " Match paired bracket under the cursor call s:HL('MatchParen', s:none, s:bg3, s:bold) endif if version >= 703 " Highlighted screen columns call s:HL('ColorColumn', s:none, s:color_column) " Concealed element: \lambda → λ call s:HL('Conceal', s:blue, s:none) " Line number of CursorLine call s:HL('CursorLineNr', s:yellow, s:bg1) endif hi! link NonText GruvboxBg2 hi! link SpecialKey GruvboxBg2 call s:HL('Visual', s:none, s:bg3, s:invert_selection) hi! link VisualNOS Visual call s:HL('Search', s:yellow, s:bg0, s:inverse) call s:HL('IncSearch', s:hls_cursor, s:bg0, s:inverse) call s:HL('Underlined', s:blue, s:none, s:underline) call s:HL('StatusLine', s:bg4, s:bg0, s:bold . s:inverse) call s:HL('StatusLineNC', s:bg2, s:fg4, s:bold . s:inverse) " The column separating vertically split windows call s:HL('VertSplit', s:fg4, s:vert_split) " Current match in wildmenu completion call s:HL('WildMenu', s:blue, s:bg2, s:bold) " Directory names, special names in listing hi! link Directory GruvboxGreenBold " Titles for output from :set all, :autocmd, etc. hi! link Title GruvboxGreenBold " Error messages on the command line call s:HL('ErrorMsg', s:bg0, s:red, s:bold) " More prompt: -- More -- hi! link MoreMsg GruvboxYellowBold " Current mode message: -- INSERT -- hi! link ModeMsg GruvboxYellowBold " 'Press enter' prompt and yes/no questions hi! link Question GruvboxOrangeBold " Warning messages hi! link WarningMsg GruvboxRedBold " }}} " Gutter: {{{ " Line number for :number and :# commands call s:HL('LineNr', s:bg4, s:number_column) " Column where signs are displayed call s:HL('SignColumn', s:none, s:sign_column) " Line used for closed folds call s:HL('Folded', s:gray, s:bg1, s:italic) " Column where folds are displayed call s:HL('FoldColumn', s:gray, s:bg1) " }}} " Cursor: {{{ " Character under cursor call s:HL('Cursor', s:none, s:none, s:inverse) " Visual mode cursor, selection hi! link vCursor Cursor " Input moder cursor hi! link iCursor Cursor " Language mapping cursor hi! link lCursor Cursor " }}} " Syntax Highlighting: {{{ if g:gruvbox_improved_strings == 0 hi! link Special GruvboxOrange else call s:HL('Special', s:bg1, s:orange, s:italic) endif call s:HL('Comment', s:gray, s:none, s:italicize_comments) call s:HL('Todo', s:vim_fg, s:vim_bg, s:bold . s:italic) call s:HL('Error', s:red, s:vim_bg, s:bold . s:inverse) " Generic statement hi! link Statement GruvboxRed " if, then, else, endif, swicth, etc. hi! link Conditional GruvboxRed " for, do, while, etc. hi! link Repeat GruvboxRed " case, default, etc. hi! link Label GruvboxRed " try, catch, throw hi! link Exception GruvboxRed " sizeof, "+", "*", etc. hi! link Operator Normal " Any other keyword hi! link Keyword GruvboxRed " Variable name hi! link Identifier GruvboxBlue " Function name hi! link Function GruvboxGreenBold " Generic preprocessor hi! link PreProc GruvboxAqua " Preprocessor #include hi! link Include GruvboxAqua " Preprocessor #define hi! link Define GruvboxAqua " Same as Define hi! link Macro GruvboxAqua " Preprocessor #if, #else, #endif, etc. hi! link PreCondit GruvboxAqua " Generic constant hi! link Constant GruvboxPurple " Character constant: 'c', '/n' hi! link Character GruvboxPurple " String constant: "this is a string" if g:gruvbox_improved_strings == 0 call s:HL('String', s:green, s:none, s:italicize_strings) else call s:HL('String', s:bg1, s:fg1, s:italicize_strings) endif " Boolean constant: TRUE, false hi! link Boolean GruvboxPurple " Number constant: 234, 0xff hi! link Number GruvboxPurple " Floating point constant: 2.3e10 hi! link Float GruvboxPurple " Generic type hi! link Type GruvboxYellow " static, register, volatile, etc hi! link StorageClass GruvboxOrange " struct, union, enum, etc. hi! link Structure GruvboxAqua " typedef hi! link Typedef GruvboxYellow " }}} " Completion Menu: {{{ if version >= 700 " Popup menu: normal item call s:HL('Pmenu', s:fg1, s:bg2) " Popup menu: selected item call s:HL('PmenuSel', s:bg2, s:blue, s:bold) " Popup menu: scrollbar call s:HL('PmenuSbar', s:none, s:bg2) " Popup menu: scrollbar thumb call s:HL('PmenuThumb', s:none, s:bg4) endif " }}} " Diffs: {{{ call s:HL('DiffDelete', s:red, s:bg0, s:inverse) call s:HL('DiffAdd', s:green, s:bg0, s:inverse) "call s:HL('DiffChange', s:bg0, s:blue) "call s:HL('DiffText', s:bg0, s:yellow) " Alternative setting call s:HL('DiffChange', s:aqua, s:bg0, s:inverse) call s:HL('DiffText', s:yellow, s:bg0, s:inverse) " }}} " Spelling: {{{ if has("spell") " Not capitalised word, or compile warnings if g:gruvbox_improved_warnings == 0 call s:HL('SpellCap', s:none, s:none, s:undercurl, s:red) else call s:HL('SpellCap', s:green, s:none, s:bold . s:italic) endif " Not recognized word call s:HL('SpellBad', s:none, s:none, s:undercurl, s:blue) " Wrong spelling for selected region call s:HL('SpellLocal', s:none, s:none, s:undercurl, s:aqua) " Rare word call s:HL('SpellRare', s:none, s:none, s:undercurl, s:purple) endif " }}} " Plugin specific ------------------------------------------------------------- " EasyMotion: {{{ hi! link EasyMotionTarget Search hi! link EasyMotionShade Comment " }}} " Sneak: {{{ hi! link SneakPluginTarget Search hi! link SneakStreakTarget Search call s:HL('SneakStreakMask', s:yellow, s:yellow) hi! link SneakStreakStatusLine Search " }}} " Indent Guides: {{{ if !exists('g:indent_guides_auto_colors') let g:indent_guides_auto_colors = 0 endif if g:indent_guides_auto_colors == 0 if g:gruvbox_invert_indent_guides == 0 call s:HL('IndentGuidesOdd', s:vim_bg, s:bg2) call s:HL('IndentGuidesEven', s:vim_bg, s:bg1) else call s:HL('IndentGuidesOdd', s:vim_bg, s:bg2, s:inverse) call s:HL('IndentGuidesEven', s:vim_bg, s:bg3, s:inverse) endif endif " }}} " IndentLine: {{{ if !exists('g:indentLine_color_term') let g:indentLine_color_term = s:bg2[1] endif if !exists('g:indentLine_color_gui') let g:indentLine_color_gui = s:bg2[0] endif " }}} " Rainbow Parentheses: {{{ if !exists('g:rbpt_colorpairs') let g:rbpt_colorpairs = \ [ \ ['blue', '#458588'], ['magenta', '#b16286'], \ ['red', '#cc241d'], ['166', '#d65d0e'] \ ] endif let g:rainbow_guifgs = [ '#d65d0e', '#cc241d', '#b16286', '#458588' ] let g:rainbow_ctermfgs = [ '166', 'red', 'magenta', 'blue' ] if !exists('g:rainbow_conf') let g:rainbow_conf = {} endif if !has_key(g:rainbow_conf, 'guifgs') let g:rainbow_conf['guifgs'] = g:rainbow_guifgs endif if !has_key(g:rainbow_conf, 'ctermfgs') let g:rainbow_conf['ctermfgs'] = g:rainbow_ctermfgs endif let g:niji_dark_colours = g:rbpt_colorpairs let g:niji_light_colours = g:rbpt_colorpairs "}}} " GitGutter: {{{ hi! link GitGutterAdd GruvboxGreenSign hi! link GitGutterChange GruvboxAquaSign hi! link GitGutterDelete GruvboxRedSign hi! link GitGutterChangeDelete GruvboxAquaSign " }}} " GitCommit: "{{{ hi! link gitcommitSelectedFile GruvboxGreen hi! link gitcommitDiscardedFile GruvboxRed " }}} " Signify: {{{ hi! link SignifySignAdd GruvboxGreenSign hi! link SignifySignChange GruvboxAquaSign hi! link SignifySignDelete GruvboxRedSign " }}} " Syntastic: {{{ call s:HL('SyntasticError', s:none, s:none, s:undercurl, s:red) call s:HL('SyntasticWarning', s:none, s:none, s:undercurl, s:yellow) hi! link SyntasticErrorSign GruvboxRedSign hi! link SyntasticWarningSign GruvboxYellowSign " }}} " Signature: {{{ hi! link SignatureMarkText GruvboxBlueSign hi! link SignatureMarkerText GruvboxPurpleSign " }}} " ShowMarks: {{{ hi! link ShowMarksHLl GruvboxBlueSign hi! link ShowMarksHLu GruvboxBlueSign hi! link ShowMarksHLo GruvboxBlueSign hi! link ShowMarksHLm GruvboxBlueSign " }}} " CtrlP: {{{ hi! link CtrlPMatch GruvboxYellow hi! link CtrlPNoEntries GruvboxRed hi! link CtrlPPrtBase GruvboxBg2 hi! link CtrlPPrtCursor GruvboxBlue hi! link CtrlPLinePre GruvboxBg2 call s:HL('CtrlPMode1', s:blue, s:bg2, s:bold) call s:HL('CtrlPMode2', s:bg0, s:blue, s:bold) call s:HL('CtrlPStats', s:fg4, s:bg2, s:bold) " }}} " Startify: {{{ hi! link StartifyBracket GruvboxFg3 hi! link StartifyFile GruvboxFg0 hi! link StartifyNumber GruvboxBlue hi! link StartifyPath GruvboxGray hi! link StartifySlash GruvboxGray hi! link StartifySection GruvboxYellow hi! link StartifySpecial GruvboxBg2 hi! link StartifyHeader GruvboxOrange hi! link StartifyFooter GruvboxBg2 " }}} " Vimshell: {{{ let g:vimshell_escape_colors = [ \ s:bg4[0], s:red[0], s:green[0], s:yellow[0], \ s:blue[0], s:purple[0], s:aqua[0], s:fg4[0], \ s:bg0[0], s:red[0], s:green[0], s:orange[0], \ s:blue[0], s:purple[0], s:aqua[0], s:fg0[0] \ ] " }}} " BufTabLine: {{{ call s:HL('BufTabLineCurrent', s:bg0, s:fg4) call s:HL('BufTabLineActive', s:fg4, s:bg2) call s:HL('BufTabLineHidden', s:bg4, s:bg1) call s:HL('BufTabLineFill', s:bg0, s:bg0) " }}} " Filetype specific ----------------------------------------------------------- " Diff: {{{ hi! link diffAdded GruvboxGreen hi! link diffRemoved GruvboxRed hi! link diffChanged GruvboxAqua hi! link diffFile GruvboxOrange hi! link diffNewFile GruvboxYellow hi! link diffLine GruvboxBlue " }}} " Html: {{{ hi! link htmlTag GruvboxBlue hi! link htmlEndTag GruvboxBlue hi! link htmlTagName GruvboxAquaBold hi! link htmlArg GruvboxAqua hi! link htmlScriptTag GruvboxPurple hi! link htmlTagN GruvboxFg1 hi! link htmlSpecialTagName GruvboxAquaBold call s:HL('htmlLink', s:fg4, s:none, s:underline) hi! link htmlSpecialChar GruvboxOrange call s:HL('htmlBold', s:vim_fg, s:vim_bg, s:bold) call s:HL('htmlBoldUnderline', s:vim_fg, s:vim_bg, s:bold . s:underline) call s:HL('htmlBoldItalic', s:vim_fg, s:vim_bg, s:bold . s:italic) call s:HL('htmlBoldUnderlineItalic', s:vim_fg, s:vim_bg, s:bold . s:underline . s:italic) call s:HL('htmlUnderline', s:vim_fg, s:vim_bg, s:underline) call s:HL('htmlUnderlineItalic', s:vim_fg, s:vim_bg, s:underline . s:italic) call s:HL('htmlItalic', s:vim_fg, s:vim_bg, s:italic) " }}} " Xml: {{{ hi! link xmlTag GruvboxBlue hi! link xmlEndTag GruvboxBlue hi! link xmlTagName GruvboxBlue hi! link xmlEqual GruvboxBlue hi! link docbkKeyword GruvboxAquaBold hi! link xmlDocTypeDecl GruvboxGray hi! link xmlDocTypeKeyword GruvboxPurple hi! link xmlCdataStart GruvboxGray hi! link xmlCdataCdata GruvboxPurple hi! link dtdFunction GruvboxGray hi! link dtdTagName GruvboxPurple hi! link xmlAttrib GruvboxAqua hi! link xmlProcessingDelim GruvboxGray hi! link dtdParamEntityPunct GruvboxGray hi! link dtdParamEntityDPunct GruvboxGray hi! link xmlAttribPunct GruvboxGray hi! link xmlEntity GruvboxOrange hi! link xmlEntityPunct GruvboxOrange " }}} " Vim: {{{ call s:HL('vimCommentTitle', s:fg4_256, s:none, s:bold . s:italicize_comments) hi! link vimNotation GruvboxOrange hi! link vimBracket GruvboxOrange hi! link vimMapModKey GruvboxOrange hi! link vimFuncSID GruvboxFg3 hi! link vimSetSep GruvboxFg3 hi! link vimSep GruvboxFg3 hi! link vimContinue GruvboxFg3 " }}} " Clojure: {{{ hi! link clojureKeyword GruvboxBlue hi! link clojureCond GruvboxOrange hi! link clojureSpecial GruvboxOrange hi! link clojureDefine GruvboxOrange hi! link clojureFunc GruvboxYellow hi! link clojureRepeat GruvboxYellow hi! link clojureCharacter GruvboxAqua hi! link clojureStringEscape GruvboxAqua hi! link clojureException GruvboxRed hi! link clojureRegexp GruvboxAqua hi! link clojureRegexpEscape GruvboxAqua call s:HL('clojureRegexpCharClass', s:fg3, s:none, s:bold) hi! link clojureRegexpMod clojureRegexpCharClass hi! link clojureRegexpQuantifier clojureRegexpCharClass hi! link clojureParen GruvboxFg3 hi! link clojureAnonArg GruvboxYellow hi! link clojureVariable GruvboxBlue hi! link clojureMacro GruvboxOrange hi! link clojureMeta GruvboxYellow hi! link clojureDeref GruvboxYellow hi! link clojureQuote GruvboxYellow hi! link clojureUnquote GruvboxYellow " }}} " C: {{{ hi! link cOperator GruvboxPurple hi! link cStructure GruvboxOrange " }}} " Python: {{{ hi! link pythonBuiltin GruvboxOrange hi! link pythonBuiltinObj GruvboxOrange hi! link pythonBuiltinFunc GruvboxOrange hi! link pythonFunction GruvboxAqua hi! link pythonDecorator GruvboxRed hi! link pythonInclude GruvboxBlue hi! link pythonImport GruvboxBlue hi! link pythonRun GruvboxBlue hi! link pythonCoding GruvboxBlue hi! link pythonOperator GruvboxRed hi! link pythonExceptions GruvboxPurple hi! link pythonBoolean GruvboxPurple hi! link pythonDot GruvboxFg3 " }}} " CSS: {{{ hi! link cssBraces GruvboxBlue hi! link cssFunctionName GruvboxYellow hi! link cssIdentifier GruvboxOrange hi! link cssClassName GruvboxGreen hi! link cssColor GruvboxBlue hi! link cssSelectorOp GruvboxBlue hi! link cssSelectorOp2 GruvboxBlue hi! link cssImportant GruvboxGreen hi! link cssVendor GruvboxFg1 hi! link cssTextProp GruvboxAqua hi! link cssAnimationProp GruvboxAqua hi! link cssUIProp GruvboxYellow hi! link cssTransformProp GruvboxAqua hi! link cssTransitionProp GruvboxAqua hi! link cssPrintProp GruvboxAqua hi! link cssPositioningProp GruvboxYellow hi! link cssBoxProp GruvboxAqua hi! link cssFontDescriptorProp GruvboxAqua hi! link cssFlexibleBoxProp GruvboxAqua hi! link cssBorderOutlineProp GruvboxAqua hi! link cssBackgroundProp GruvboxAqua hi! link cssMarginProp GruvboxAqua hi! link cssListProp GruvboxAqua hi! link cssTableProp GruvboxAqua hi! link cssFontProp GruvboxAqua hi! link cssPaddingProp GruvboxAqua hi! link cssDimensionProp GruvboxAqua hi! link cssRenderProp GruvboxAqua hi! link cssColorProp GruvboxAqua hi! link cssGeneratedContentProp GruvboxAqua " }}} " JavaScript: {{{ hi! link javaScriptBraces GruvboxFg1 hi! link javaScriptFunction GruvboxAqua hi! link javaScriptIdentifier GruvboxRed hi! link javaScriptMember GruvboxBlue hi! link javaScriptNumber GruvboxPurple hi! link javaScriptNull GruvboxPurple hi! link javaScriptParens GruvboxFg3 " }}} " YAJS: {{{ hi! link javascriptImport GruvboxAqua hi! link javascriptExport GruvboxAqua hi! link javascriptClassKeyword GruvboxAqua hi! link javascriptClassExtends GruvboxAqua hi! link javascriptDefault GruvboxAqua hi! link javascriptClassName GruvboxYellow hi! link javascriptClassSuperName GruvboxYellow hi! link javascriptGlobal GruvboxYellow hi! link javascriptEndColons GruvboxFg1 hi! link javascriptFuncArg GruvboxFg1 hi! link javascriptGlobalMethod GruvboxFg1 hi! link javascriptNodeGlobal GruvboxFg1 " hi! link javascriptVariable GruvboxOrange hi! link javascriptVariable GruvboxRed " hi! link javascriptIdentifier GruvboxOrange " hi! link javascriptClassSuper GruvboxOrange hi! link javascriptIdentifier GruvboxOrange hi! link javascriptClassSuper GruvboxOrange " hi! link javascriptFuncKeyword GruvboxOrange " hi! link javascriptAsyncFunc GruvboxOrange hi! link javascriptFuncKeyword GruvboxAqua hi! link javascriptAsyncFunc GruvboxAqua hi! link javascriptClassStatic GruvboxOrange hi! link javascriptOperator GruvboxRed hi! link javascriptForOperator GruvboxRed hi! link javascriptYield GruvboxRed hi! link javascriptExceptions GruvboxRed hi! link javascriptMessage GruvboxRed hi! link javascriptTemplateSB GruvboxAqua hi! link javascriptTemplateSubstitution GruvboxFg1 " hi! link javascriptLabel GruvboxBlue " hi! link javascriptObjectLabel GruvboxBlue " hi! link javascriptPropertyName GruvboxBlue hi! link javascriptLabel GruvboxFg1 hi! link javascriptObjectLabel GruvboxFg1 hi! link javascriptPropertyName GruvboxFg1 hi! link javascriptLogicSymbols GruvboxFg1 hi! link javascriptArrowFunc GruvboxFg1 hi! link javascriptDocParamName GruvboxFg4 hi! link javascriptDocTags GruvboxFg4 hi! link javascriptDocNotation GruvboxFg4 hi! link javascriptDocParamType GruvboxFg4 hi! link javascriptDocNamedParamType GruvboxFg4 " }}} " TypeScript: {{{ hi! link typeScriptReserved GruvboxAqua hi! link typeScriptLabel GruvboxAqua hi! link typeScriptIdentifier GruvboxOrange hi! link typeScriptBraces GruvboxFg1 hi! link typeScriptEndColons GruvboxFg1 hi! link typeScriptDOMObjects GruvboxFg1 hi! link typeScriptAjaxMethods GruvboxFg1 hi! link typeScriptLogicSymbols GruvboxFg1 hi! link typeScriptDocSeeTag Comment hi! link typeScriptDocParam Comment hi! link typeScriptDocTags vimCommentTitle " }}} " CoffeeScript: {{{ hi! link coffeeExtendedOp GruvboxFg3 hi! link coffeeSpecialOp GruvboxFg3 hi! link coffeeCurly GruvboxOrange hi! link coffeeParen GruvboxFg3 hi! link coffeeBracket GruvboxOrange " }}} " Ruby: {{{ hi! link rubyStringDelimiter GruvboxGreen hi! link rubyInterpolationDelimiter GruvboxAqua " }}} " ObjectiveC: {{{ hi! link objcTypeModifier GruvboxRed hi! link objcDirective GruvboxBlue " }}} " Go: {{{ hi! link goDirective GruvboxAqua hi! link goConstants GruvboxPurple hi! link goDeclaration GruvboxRed hi! link goDeclType GruvboxBlue hi! link goBuiltins GruvboxOrange " }}} " Lua: {{{ hi! link luaIn GruvboxRed hi! link luaFunction GruvboxAqua hi! link luaTable GruvboxOrange " }}} " MoonScript: {{{ hi! link moonSpecialOp GruvboxFg3 hi! link moonExtendedOp GruvboxFg3 hi! link moonFunction GruvboxFg3 hi! link moonObject GruvboxYellow " }}} " Java: {{{ hi! link javaAnnotation GruvboxBlue hi! link javaDocTags GruvboxAqua hi! link javaCommentTitle vimCommentTitle hi! link javaParen GruvboxFg3 hi! link javaParen1 GruvboxFg3 hi! link javaParen2 GruvboxFg3 hi! link javaParen3 GruvboxFg3 hi! link javaParen4 GruvboxFg3 hi! link javaParen5 GruvboxFg3 hi! link javaOperator GruvboxOrange hi! link javaVarArg GruvboxGreen " }}} " Elixir: {{{ hi! link elixirDocString Comment hi! link elixirStringDelimiter GruvboxGreen hi! link elixirInterpolationDelimiter GruvboxAqua hi! link elixirModuleDeclaration GruvboxYellow " }}} " Scala: {{{ " NB: scala vim syntax file is kinda horrible hi! link scalaNameDefinition GruvboxFg1 hi! link scalaCaseFollowing GruvboxFg1 hi! link scalaCapitalWord GruvboxFg1 hi! link scalaTypeExtension GruvboxFg1 hi! link scalaKeyword GruvboxRed hi! link scalaKeywordModifier GruvboxRed hi! link scalaSpecial GruvboxAqua hi! link scalaOperator GruvboxFg1 hi! link scalaTypeDeclaration GruvboxYellow hi! link scalaTypeTypePostDeclaration GruvboxYellow hi! link scalaInstanceDeclaration GruvboxFg1 hi! link scalaInterpolation GruvboxAqua " }}} " Markdown: {{{ call s:HL('markdownItalic', s:fg3, s:none, s:italic) hi! link markdownH1 GruvboxGreenBold hi! link markdownH2 GruvboxGreenBold hi! link markdownH3 GruvboxYellowBold hi! link markdownH4 GruvboxYellowBold hi! link markdownH5 GruvboxYellow hi! link markdownH6 GruvboxYellow hi! link markdownCode GruvboxAqua hi! link markdownCodeBlock GruvboxAqua hi! link markdownCodeDelimiter GruvboxAqua hi! link markdownBlockquote GruvboxGray hi! link markdownListMarker GruvboxGray hi! link markdownOrderedListMarker GruvboxGray hi! link markdownRule GruvboxGray hi! link markdownHeadingRule GruvboxGray hi! link markdownUrlDelimiter GruvboxFg3 hi! link markdownLinkDelimiter GruvboxFg3 hi! link markdownLinkTextDelimiter GruvboxFg3 hi! link markdownHeadingDelimiter GruvboxOrange hi! link markdownUrl GruvboxPurple hi! link markdownUrlTitleDelimiter GruvboxGreen call s:HL('markdownLinkText', s:gray, s:none, s:underline) hi! link markdownIdDeclaration markdownLinkText " }}} " Haskell: {{{ " hi! link haskellType GruvboxYellow " hi! link haskellOperators GruvboxOrange " hi! link haskellConditional GruvboxAqua " hi! link haskellLet GruvboxOrange " hi! link haskellType GruvboxFg1 hi! link haskellIdentifier GruvboxFg1 hi! link haskellSeparator GruvboxFg1 hi! link haskellDelimiter GruvboxFg4 hi! link haskellOperators GruvboxBlue " hi! link haskellBacktick GruvboxOrange hi! link haskellStatement GruvboxOrange hi! link haskellConditional GruvboxOrange hi! link haskellLet GruvboxAqua hi! link haskellDefault GruvboxAqua hi! link haskellWhere GruvboxAqua hi! link haskellBottom GruvboxAqua hi! link haskellBlockKeywords GruvboxAqua hi! link haskellImportKeywords GruvboxAqua hi! link haskellDeclKeyword GruvboxAqua hi! link haskellDeriving GruvboxAqua hi! link haskellAssocType GruvboxAqua hi! link haskellNumber GruvboxPurple hi! link haskellPragma GruvboxPurple hi! link haskellString GruvboxGreen hi! link haskellChar GruvboxGreen " }}} " Json: {{{ hi! link jsonKeyword GruvboxGreen hi! link jsonQuote GruvboxGreen hi! link jsonBraces GruvboxFg1 hi! link jsonString GruvboxFg1 " }}} " Functions ------------------------------------------------------------------- " Search Highlighting Cursor {{{ function! GruvboxHlsShowCursor() call s:HL('Cursor', s:bg0, s:hls_cursor) endfunction function! GruvboxHlsHideCursor() call s:HL('Cursor', s:none, s:none, s:inverse) endfunction " }}} " vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker:

上面是对gruvbox的设置。下面是对.vimrc的设置。

心痛。。。。。

set sw=4 set ts=4 set et set smarttab set smartindent set lbr set fo+=mB set sm set selection=inclusive set wildmenu set mousemodel=popup au FileType php setlocal dict+=~/.vim/dict/php_funclist.dict au FileType css setlocal dict+=~/.vim/dict/css.dict au FileType c setlocal dict+=~/.vim/dict/c.dict au FileType cpp setlocal dict+=~/.vim/dict/cpp.dict au FileType scale setlocal dict+=~/.vim/dict/scale.dict au FileType javascript setlocal dict+=~/.vim/dict/javascript.dict au FileType html setlocal dict+=~/.vim/dict/javascript.dict au FileType html setlocal dict+=~/.vim/dict/css.dict " "syntastic相关 execute pathogen#infect() let g:syntastic_python_checkers=['pylint'] let g:syntastic_php_checkers=['php', 'phpcs', 'phpmd'] "golang "Processing... % (ctrl+c to stop) let g:fencview_autodetect=0 set rtp+=$GOROOT/misc/vim """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 显示相关 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" syntax on set cul "高亮光标所在行 set cuc set shortmess=atI " 启动的时候不显示那个援助乌干达儿童的提示 set go= " 不要图形按钮 colorscheme gruvbox "autocmd InsertLeave * se nocul " 用浅色高亮当前行 autocmd InsertEnter * se cul " 用浅色高亮当前行 set ruler " 显示标尺 set showcmd " 输入的命令显示出来,看的清楚些 "set whichwrap+=<,>,h,l " 允许backspace和光标键跨越行边界(不建议) set scrolloff=3 " 光标移动到buffer的顶部和底部时保持3行距离 set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} "状态行显示的内容 set laststatus=2 " 启动显示状态行(1),总是显示状态行(2) "set foldenable " 允许折叠 ""set foldmethod=manual " 手动折叠 set nocompatible "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限 " 显示中文帮助 if version >= 603 set helplang=cn set encoding=utf-8 endif " 自动缩进 set autoindent set cindent " Tab键的宽度 set tabstop=4 " 统一缩进为4 set softtabstop=4 set shiftwidth=4 " 使用空格代替制表符 set expandtab " 在行和段开始处使用制表符 set smarttab " 显示行号 set number " 历史记录数 set history=1000 "搜索逐字符高亮 set hlsearch set incsearch "语言设置 set langmenu=zh_CN.UTF-8 set helplang=cn " 总是显示状态行 set cmdheight=2 " 侦测文件类型 filetype on " 载入文件类型插件 filetype plugin on " 为特定文件类型载入相关缩进文件 filetype indent on " 保存全局变量 set viminfo+=! " 带有如下符号的单词不要被换行分割 set iskeyword+=_,$,@,%,#,- " 字符间插入的像素行数目 "markdown配置 au BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn} set filetype=mkd au BufRead,BufNewFile *.{go} set filetype=go au BufRead,BufNewFile *.{js} set filetype=javascript "rkdown to HTML nmap md :!~/.vim/markdown.pl % > %.html <CR><CR> nmap fi :!firefox %.html & <CR><CR> nmap \ \cc vmap \ \cc "将tab替换为空格 nmap tt :%s/\t/ /g<CR> """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""新文件标题 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "新建.c,.h,.sh,.java文件,自动插入文件头 autocmd BufNewFile *.cpp,*.[ch],*.sh,*.rb,*.java,*.py exec ":call SetTitle()" ""定义函数SetTitle,自动插入文件头 func SetTitle() "如果文件类型为.sh文件 if &filetype == 'sh' call setline(1,"\#!/bin/bash") call append(line("."), "") elseif &filetype == 'python' call setline(1,"#!/usr/bin/env python") call append(line("."),"# coding=utf-8") call append(line(".")+1, "") elseif &filetype == 'ruby' call setline(1,"#!/usr/bin/env ruby") call append(line("."),"# encoding: utf-8") call append(line(".")+1, "") " elseif &filetype == 'mkd' " call setline(1,"<head><meta charset=\"UTF-8\"></head>") endif if expand("%:e") == 'cpp' call append(0, "#include<iostream>") call append(1, "#include<cstdio>") call append(2, "#include<string.h>") call append(3, "#include<math.h>") call append(4, "#include<string>") call append(5, "#include<map>") call append(6, "#include<set>") call append(7, "#include<vector>") call append(8, "#include<algorithm>") call append(9, "#include<queue>") call append(10, "#include<iomanip>") call append(11, "using namespace std;") call append(12, "const int INF = 0x3f3f3f3f;") call append(13, "const int NINF = 0xc0c0c0c0;") call append(14, "") endif if &filetype == 'c' call append(line(".")+6, "#include<stdio.h>") call append(line(".")+7, "") endif if expand("%:e") == 'h' call append(line(".")+6, "#ifndef _".toupper(expand("%:r"))."_H") call append(line(".")+7, "#define _".toupper(expand("%:r"))."_H") call append(line(".")+8, "#endif") endif if &filetype == 'java' call append(line(".")+6,"public class ".expand("%:r")) call append(line(".")+7,"") endif "新建文件后,自动定位到文件末尾 endfunc autocmd BufNewFile * normal G """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "键盘命令 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" :nmap <silent> <F9> <ESC>:Tlist<RETURN> " shift tab pages map <S-Left> :tabp<CR> map <S-Right> :tabn<CR> map! <C-Z> <Esc>zzi map! <C-O> <C-Y>, map <C-A> ggVG$"+y map <F12> gg=G map <C-w> <C-w>w imap <C-k> <C-y>, imap <C-t> <C-q><TAB> imap <C-j> <ESC> " 选中状态下 Ctrl+c 复制 "map <C-v> "*pa imap <C-v> <Esc>"*pa imap <C-a> <Esc>^ imap <C-e> <Esc>$ vmap <C-c> "+y set mouse=v "set clipboard=unnamed "去空行 nnoremap <F2> :g/^\s*$/d<CR> "比较文件 nnoremap <C-F2> :vert diffsplit "nnoremap <Leader>fu :CtrlPFunky<Cr> "nnoremap <C-n> :CtrlPFunky<Cr> "列出当前目录文件 map <F3> :NERDTreeToggle<CR> imap <F3> <ESC> :NERDTreeToggle<CR> "打开树状文件目录 map <C-F3> \be :autocmd BufRead,BufNewFile *.dot map <F5> :w<CR>:!dot -Tjpg -o %<.jpg % && eog %<.jpg <CR><CR> && exec "redr!" "C,C++ 按F5编译运行 map <F5> :call CompileRunGcc()<CR> func! CompileRunGcc() exec "w" if &filetype == 'c' exec "!g++ % -o %<" exec "!time ./%<" elseif &filetype == 'cpp' exec "!g++ % -o %<" exec "!time ./%<" elseif &filetype == 'java' exec "!javac %" exec "!time java %<" elseif &filetype == 'sh' :!time bash % elseif &filetype == 'python' exec "!time python2.7 %" elseif &filetype == 'html' exec "!firefox % &" elseif &filetype == 'go' " exec "!go build %<" exec "!time go run %" elseif &filetype == 'mkd' exec "!~/.vim/markdown.pl % > %.html &" exec "!firefox %.html &" endif endfunc "C,C++的调试 map <F8> :call Rungdb()<CR> func! Rungdb() exec "w" exec "!g++ % -g -o %<" exec "!gdb ./%<" endfunc "代码格式优化化 map <F6> :call FormartSrc()<CR><CR> "定义FormartSrc() func FormartSrc() exec "w" if &filetype == 'c' exec "!astyle --style=ansi -a --suffix=none %" elseif &filetype == 'cpp' || &filetype == 'hpp' exec "r !astyle --style=ansi --one-line=keep-statements -a --suffix=none %> /dev/null 2>&1" elseif &filetype == 'perl' exec "!astyle --style=gnu --suffix=none %" elseif &filetype == 'py'||&filetype == 'python' exec "r !autopep8 -i --aggressive %" elseif &filetype == 'java' exec "!astyle --style=java --suffix=none %" elseif &filetype == 'jsp' exec "!astyle --style=gnu --suffix=none %" elseif &filetype == 'xml' exec "!astyle --style=gnu --suffix=none %" else exec "normal gg=G" return endif exec "e! %" endfunc "结束定义FormartSrc """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ""实用设置 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" if has("autocmd") autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe "normal g`\"" | \ endif endif "当打开vim且没有文件时自动打开NERDTree autocmd vimenter * if !argc() | NERDTree | endif " 只剩 NERDTree时自动关闭 autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif " 设置当文件被改动时自动载入 set autoread " quickfix模式 autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr> "代码补全 set completeopt=preview,menu "允许插件 "filetype plugin on "共享剪贴板 "set clipboard+=unnamed "自动保存 set autowrite "set ruler " 打开状态栏标尺 "set cursorline " 突出显示当前行 set magic " 设置魔术 set guioptions-=T " 隐藏工具栏 set guioptions-=m " 隐藏菜单栏 ""set foldcolumn=0 ""set foldmethod=indent ""set foldlevel=3 " 不要使用vi的键盘模式,而是vim自己的 set nocompatible " 去掉输入错误的提示声音 set noeb " 在处理未保存或只读文件的时候,弹出确认 set confirm "禁止生成临时文件 set nobackup set noswapfile "搜索忽略大小写 set ignorecase set linespace=0 " 增强模式中的命令行自动完成操作 set wildmenu " 使回格键(backspace)正常处理indent, eol, start等 set backspace=2 " 允许backspace和光标键跨越行边界 set whichwrap+=<,>,h,l " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位) set mouse=a set selection=exclusive set selectmode=mouse,key " 通过使用: commands命令,告诉我们文件的哪一行被改变过 set report=0 " 在被分割的窗口间显示空白,便于阅读 set fillchars=vert:\ ,stl:\ ,stlnc:\ " 高亮显示匹配的括号 set showmatch " 匹配括号高亮的时间(单位是十分之一秒) set matchtime=1 " 光标移动到buffer的顶部和底部时保持3行距离 set scrolloff=3 " 为C程序提供自动缩进 "自动补全 "":inoremap ( ()<ESC>i "":inoremap ) <c-r>=ClosePair(')')<CR> ":inoremap { {<CR>}<ESC>O ":inoremap } <c-r>=ClosePair('}')<CR> "":inoremap [ []<ESC>i "":inoremap ] <c-r>=ClosePair(']')<CR> "":inoremap " ""<ESC>i "":inoremap ' ''<ESC>i ""function! ClosePair(char) "" if getline('.')[col('.') - 1] == a:char "" return "\<Right>" "" else "" return a:char "" endif ""endfunction filetype plugin indent on "打开文件类型检测, 加了这句才可以用智能补全 set completeopt=longest,menu """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " CTags的设定 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" let Tlist_Sort_Type = "name" " 按照名称排序 let Tlist_Use_Right_Window = 1 " 在右侧显示窗口 let Tlist_Compart_Format = 1 " 压缩方式 let Tlist_Exist_OnlyWindow = 1 " 如果只有一个buffer,kill窗口也kill掉buffer ""let Tlist_File_Fold_Auto_Close = 0 " 不要关闭其他文件的tags ""let Tlist_Enable_Fold_Column = 0 " 不要显示折叠树 "let Tlist_Show_One_File=1 "不同时显示多个文件的tag,只显示当前文件的 "设置tags set tags=tags; set autochdir """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "其他东东 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "默认打开Taglist let Tlist_Auto_Open=0 """""""""""""""""""""""""""""" " Tag list (ctags) """""""""""""""""""""""""""""""" let Tlist_Ctags_Cmd = '/usr/local/bin/ctags' let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的 let Tlist_File_Fold_Auto_Close = 1 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 nmap tl :Tlist<cr> "python补全 let g:pydiction_location = '~/.vim/after/complete-dict' let g:pydiction_menu_height = 20 let Tlist_Ctags_Cmd='/usr/local/bin/ctags' let g:miniBufExplMapWindowNavVim = 1 let g:miniBufExplMapWindowNavArrows = 1 let g:miniBufExplMapCTabSwitchBufs = 1 let g:miniBufExplModSelTarget = 1 set iskeyword+=. set termencoding=utf-8 set encoding=utf8 set fileencodings=utf8,ucs-bom,gbk,cp936,gb2312,gb18030 autocmd FileType python set omnifunc=pythoncomplete#Complete "set nocompatible " be iMproved "filetype off " required! set rtp+=~/.vim/bundle/vundle/ call vundle#rc() " let Vundle manage Vundle " required! Bundle 'gmarik/vundle' " My Bundles here: " " original repos on github Bundle 'tpope/vim-fugitive' Bundle 'rstacruz/sparkup', {'rtp': 'vim/'} Bundle 'Yggdroot/indentLine' let g:indentLine_char = '┊' "ndle 'tpope/vim-rails.git' " vim-scripts repos Bundle 'L9' Bundle 'FuzzyFinder' " non github repos Bundle 'https://github.com/wincent/command-t.git' Bundle 'Auto-Pairs' Bundle 'python-imports.vim' Bundle 'CaptureClipboard' Bundle 'ctrlp-modified.vim' Bundle 'last_edit_marker.vim' Bundle 'synmark.vim' "Bundle 'Python-mode-klen' Bundle 'SQLComplete.vim' Bundle 'Javascript-OmniCompletion-with-YUI-and-j' "Bundle 'JavaScript-Indent' "Bundle 'Better-Javascript-Indentation' Bundle 'jslint.vim' Bundle "pangloss/vim-javascript" Bundle 'Vim-Script-Updater' Bundle 'ctrlp.vim' Bundle 'tacahiroy/ctrlp-funky' Bundle 'jsbeautify' Bundle 'The-NERD-Commenter' "django Bundle 'django_templates.vim' Bundle 'Django-Projects' "Bundle 'FredKSchott/CoVim' "Bundle 'djangojump' " ... let g:html_indent_inctags = "html,body,head,tbody" let g:html_indent_script1 = "inc" let g:html_indent_style1 = "inc" filetype plugin indent on " required! " "ctrlp设置 " set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.pyc,*.png,*.jpg,*.gif " MacOSX/Linux set wildignore+=*\\tmp\\*,*.swp,*.zip,*.exe,*.pyc,*.png,*.jpg,*.gif " Windows let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$' let g:ctrlp_custom_ignore = '\v\.(exe|so|dll)$' let g:ctrlp_extensions = ['funky'] let NERDTreeIgnore=['\.pyc']

http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html https://github.com/morhetz/gruvbox /usr/share/vim/vim74

转载请注明原文地址: https://www.6miu.com/read-42326.html

最新回复(0)