vimrc

作者: masakakaikai | 来源:发表于2015-06-03 03:41 被阅读153次

    source ~/.vim/bundles.vim

    " encoding dectection
    set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1

    " enable filetype dectection and ft specific plugin/indent
    filetype plugin indent on

    " enable syntax hightlight and completion
    syntax on

    "--------
    " Vim UI
    "--------
    " color scheme
    set background=dark
    color solarized

    " highlight current line
    au WinLeave * set nocursorline nocursorcolumn
    au WinEnter * set cursorline cursorcolumn
    set cursorline cursorcolumn

    " search
    set incsearch
    "set highlight " conflict with highlight current line
    set ignorecase
    set smartcase

    " editor settings
    set history=1000
    set nocompatible
    set nofoldenable " disable folding"
    set confirm " prompt when existing from an unsaved file
    set backspace=indent,eol,start " More powerful backspacing
    set t_Co=256 " Explicitly tell vim that the terminal has 256 colors "
    set mouse=a " use mouse in all modes
    set report=0 " always report number of lines changed "
    set nowrap " dont wrap lines
    set scrolloff=5 " 5 lines above/below cursor when scrolling
    set number " show line numbers
    set showmatch " show matching bracket (briefly jump)
    set showcmd " show typed command in status bar
    set title " show file in titlebar
    set laststatus=2 " use 2 lines for the status bar
    set matchtime=2 " show matching bracket for 0.2 seconds
    set matchpairs+=<:> " specially for html
    " set relativenumber

    " Default Indentation
    set autoindent
    set smartindent " indent when
    set tabstop=4 " tab width
    set softtabstop=4 " backspace
    set shiftwidth=4 " indent width
    " set textwidth=79
    " set smarttab
    set expandtab " expand tab to space

    autocmd FileType php setlocal tabstop=2 shiftwidth=2 softtabstop=2 textwidth=120
    autocmd FileType ruby setlocal tabstop=2 shiftwidth=2 softtabstop=2 textwidth=120
    autocmd FileType php setlocal tabstop=4 shiftwidth=4 softtabstop=4 textwidth=120
    autocmd FileType coffee,javascript setlocal tabstop=2 shiftwidth=2 softtabstop=2 textwidth=120
    autocmd FileType python setlocal tabstop=4 shiftwidth=4 softtabstop=4 textwidth=120
    autocmd FileType html,htmldjango,xhtml,haml setlocal tabstop=2 shiftwidth=2 softtabstop=2 textwidth=0
    autocmd FileType sass,scss,css setlocal tabstop=2 shiftwidth=2 softtabstop=2 textwidth=120

    " syntax support
    autocmd Syntax javascript set syntax=jquery " JQuery syntax support
    " js
    let g:html_indent_inctags = "html,body,head,tbody"
    let g:html_indent_script1 = "inc"
    let g:html_indent_style1 = "inc"

    "-----------------
    " Plugin settings
    "-----------------
    " Rainbow parentheses for Lisp and variants
    let g:rbpt_colorpairs = [
    \ ['brown', 'RoyalBlue3'],
    \ ['Darkblue', 'SeaGreen3'],
    \ ['darkgray', 'DarkOrchid3'],
    \ ['darkgreen', 'firebrick3'],
    \ ['darkcyan', 'RoyalBlue3'],
    \ ['darkred', 'SeaGreen3'],
    \ ['darkmagenta', 'DarkOrchid3'],
    \ ['brown', 'firebrick3'],
    \ ['gray', 'RoyalBlue3'],
    \ ['black', 'SeaGreen3'],
    \ ['darkmagenta', 'DarkOrchid3'],
    \ ['Darkblue', 'firebrick3'],
    \ ['darkgreen', 'RoyalBlue3'],
    \ ['darkcyan', 'SeaGreen3'],
    \ ['darkred', 'DarkOrchid3'],
    \ ['red', 'firebrick3'],
    \ ]
    let g:rbpt_max = 16
    autocmd Syntax lisp,scheme,clojure,racket RainbowParenthesesToggle

    " tabbar
    let g:Tb_MaxSize = 2
    let g:Tb_TabWrap = 1

    hi Tb_Normal guifg=white ctermfg=white
    hi Tb_Changed guifg=green ctermfg=green
    hi Tb_VisibleNormal ctermbg=252 ctermfg=235
    hi Tb_VisibleChanged guifg=green ctermbg=252 ctermfg=white

    " easy-motion
    let g:EasyMotion_leader_key = '<Leader>'

    " Tagbar
    let g:tagbar_left=1
    let g:tagbar_width=30
    let g:tagbar_autofocus = 1
    let g:tagbar_sort = 0
    let g:tagbar_compact = 1
    " tag for coffee
    if executable('coffeetags')
    let g:tagbar_type_coffee = {
    \ 'ctagsbin' : 'coffeetags',
    \ 'ctagsargs' : '',
    \ 'kinds' : [
    \ 'f:functions',
    \ 'o:object',
    \ ],
    \ 'sro' : ".",
    \ 'kind2scope' : {
    \ 'f' : 'object',
    \ 'o' : 'object',
    \ }
    \ }

    let g:tagbar_type_markdown = {
    \ 'ctagstype' : 'markdown',
    \ 'sort' : 0,
    \ 'kinds' : [
    \ 'h:sections'
    \ ]
    \ }
    endif

    " Nerd Tree
    let NERDChristmasTree=0
    let NERDTreeWinSize=30
    let NERDTreeChDirMode=2
    let NERDTreeIgnore=['~$', '.pyc$', '.swp$']
    " let NERDTreeSortOrder=['^__.py$', '/$', '*', '.swp$', '~$']
    let NERDTreeShowBookmarks=1
    let NERDTreeWinPos = "right"

    " nerdcommenter
    let NERDSpaceDelims=1
    " nmap <D-/> :NERDComToggleComment<cr>
    let NERDCompactSexyComs=1

    " ZenCoding
    let g:user_emmet_expandabbr_key='<C-j>'

    " powerline
    "let g:Powerline_symbols = 'fancy'

    " NeoComplCache
    let g:neocomplcache_enable_at_startup=1
    let g:neoComplcache_disableautocomplete=1
    "let g:neocomplcache_enable_underbar_completion = 1
    "let g:neocomplcache_enable_camel_case_completion = 1
    let g:neocomplcache_enable_smart_case=1
    let g:neocomplcache_min_syntax_length = 3
    let g:neocomplcache_lock_buffer_name_pattern = '*ku*'
    set completeopt-=preview

    imap <C-k> <Plug>(neocomplcache_snippets_force_expand)
    smap <C-k> <Plug>(neocomplcache_snippets_force_expand)
    imap <C-l> <Plug>(neocomplcache_snippets_force_jump)
    smap <C-l> <Plug>(neocomplcache_snippets_force_jump)

    " Enable omni completion.
    autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS
    autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags
    autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS
    autocmd FileType python setlocal omnifunc=pythoncomplete#Complete
    autocmd FileType c setlocal omnifunc=ccomplete#Complete
    if !exists('g:neocomplcache_omni_patterns')
    let g:neocomplcache_omni_patterns = {}
    endif
    let g:neocomplcache_omni_patterns.erlang = '[a-zA-Z]|:'

    " SuperTab
    " let g:SuperTabDefultCompletionType='context'
    let g:SuperTabDefaultCompletionType = '<C-X><C-U>'
    let g:SuperTabRetainCompletionType=2

    " ctrlp
    set wildignore+=/tmp/,.so,.o,.a,.obj,.swp,.zip,.pyc,.pyo,*.class,.DS_Store " MacOSX/Linux
    let g:ctrlp_custom_ignore = '.git$|.hg$|.svn$'

    " Keybindings for plugin toggle
    nnoremap <F2> :set invpaste paste?<CR>
    set pastetoggle=<F2>
    nmap <F5> :TagbarToggle<cr>
    nmap <F6> :NERDTreeToggle<cr>
    nmap <F3> :GundoToggle<cr>
    nmap <F4> :IndentGuidesToggle<cr>
    nmap <D-/> :
    nnoremap <leader>a :Ack
    nnoremap <leader>v V`]

    "------------------
    " Useful Functions
    "------------------
    " easier navigation between split windows
    nnoremap <c-j> <c-w>j
    nnoremap <c-k> <c-w>k
    nnoremap <c-h> <c-w>h
    nnoremap <c-l> <c-w>l

    " When editing a file, always jump to the last cursor position
    autocmd BufReadPost *
    \ if ! exists("g:leave_my_cursor_position_alone") |
    \ if line("'"") > 0 && line ("'"") <= line("$") |
    \ exe "normal g'"" |
    \ endif |
    \ endif

    " w!! to sudo & write a file
    cmap w!! %!sudo tee >/dev/null %

    " Quickly edit/reload the vimrc file
    nmap <silent> <leader>ev :e $MYVIMRC<CR>
    nmap <silent> <leader>sv :so $MYVIMRC<CR>

    " sublime key bindings
    nmap <D-]> >>
    nmap <D-[> <<
    vmap <D-[> <gv
    vmap <D-]> >gv

    " eggcache vim
    nnoremap ; :
    :command W w
    :command WQ wq
    :command Wq wq
    :command Q q
    :command Qa qa
    :command QA qa

    " for macvim
    if has("gui_running")
    set go=aAce " remove toolbar
    "set transparency=30
    set guifont=Monaco:h13
    set showtabline=2
    set columns=140
    set lines=40
    noremap <D-M-Left> :tabprevious<cr>
    noremap <D-M-Right> :tabnext<cr>
    map <D-1> 1gt
    map <D-2> 2gt
    map <D-3> 3gt
    map <D-4> 4gt
    map <D-5> 5gt
    map <D-6> 6gt
    map <D-7> 7gt
    map <D-8> 8gt
    map <D-9> 9gt
    map <D-0> :tablast<CR>
    endif

    相关文章

      网友评论

          本文标题:vimrc

          本文链接:https://www.haomeiwen.com/subject/sgjdqttx.html