From ddfbe43f7d7b7f4e01ed9223779d5f69b975e72f Mon Sep 17 00:00:00 2001 From: Steve Lee Date: Sat, 2 Dec 2017 08:37:24 +0800 Subject: add vimrc --- .vimrc | 198 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 198 insertions(+) create mode 100644 .vimrc (limited to '.vimrc') diff --git a/.vimrc b/.vimrc new file mode 100644 index 0000000..50f6ae5 --- /dev/null +++ b/.vimrc @@ -0,0 +1,198 @@ +" My vimrc +" Author: Steve Lee +" Last change: 2017-11-05 + + +"""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Basic +"""""""""""""""""""""""""""""""""""""""""""""""""""""" + +" Don't try to be vi compatible +set nocompatible + +" Show what you are typing as a command. +set showcmd + +" number of lines +set number + +" Hide GUI widget and color +if has("gui_running") + set guioptions-=m "remove menu bar + set guioptions-=T "remove toolbar + set guioptions-=R + set guioptions-=L "remove left-hand scroll bar + set t_Co=256 + set guitablabel=%M\ %t + set guifont=Inconsolata\ 12 + set guicursor+=a:blinkon0 "disable cursor bliking + autocmd GUIEnter * set vb t_vb= "disable bell +endif + +" Make backspace behave in a sane manner +set backspace=indent,eol,start + +" syntax on +syntax on +"""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Plugin using Vbundle +"""""""""""""""""""""""""""""""""""""""""""""""""""""" +filetype off " required + +" set the runtime path to include Vundle and initialize +set rtp+=~/.vim/bundle/Vundle.vim +call vundle#begin() + +" let Vundle manage Vundle, required +Plugin 'VundleVim/Vundle.vim' + +Plugin 'ctrlpvim/ctrlp.vim' +Plugin 'scrooloose/nerdtree' +Plugin 'scrooloose/nerdcommenter' +Plugin 'vim-airline/vim-airline' +Plugin 'vim-airline/vim-airline-themes' +Plugin 'majutsushi/tagbar' +" Plugin '2072/PHP-Indenting-for-VIm' +Plugin 'maralla/completor.vim' +Plugin 'stevecn/tslime.vim' +Plugin 'vim-syntastic/syntastic' +Plugin 'jiangmiao/auto-pairs' +Plugin 'nathanaelkane/vim-indent-guides' +" Plugin 'lvht/phpcd.vim' + +" Colorscheme +Plugin 'chriskempson/base16-vim' +call vundle#end() " required + +" Enable file type detection and do language-dependent indenting +filetype plugin indent on + +"""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => End Plugin +"""""""""""""""""""""""""""""""""""""""""""""""""""""" + +"""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => General +"""""""""""""""""""""""""""""""""""""""""""""""""""""" + +" Set encoding to utf8 +set encoding=utf8 + +" Use spaces instead of tabs; +" and Be smart when using tabs. +set expandtab +set smarttab + +" 1 tab == 4 spaces +set shiftwidth=4 +set tabstop=4 +set softtabstop=4 + +" Huge History +set history=1000 + +" Searching +set ignorecase " Ignore case when searching +set smartcase " smart about case when searching +set hlsearch " Highlight search results +set showmatch " Show matching brackets when text indicator is over them +set cursorline " highlight current line + +set colorcolumn=81 + +" show tab line +" set showtabline=2 + +" mouse and hide the cursor +set mouse=a +set mousehide + +" Always show the status line +if has('statusline') + set laststatus=2 + " Broken down into easily includeable segments + set statusline=%<%f\ " Filename + set statusline+=%w%h%m%r " Options + set statusline+=\ [%{&ff}/%Y] " Filetype + set statusline+=\ [%{getcwd()}] " Current dir + set statusline+=%=%-14.(%l,%c%V%)\ %p%% " Right aligned file nav info +endif + +"""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => General key maping +"""""""""""""""""""""""""""""""""""""""""""""""""""""" + +" Leader key +let mapleader = ';' + +inoremap jj +cmap suw w !sudo tee > /dev/null % + +" Trim tail write space +noremap w :call TrimWhitespace() +noremap s :w +noremap c :call ComplieCurrentCProgram() +autocmd BufWritePre * :call TrimWhitespace() + +" TODO some way to cancel some key press in the vim Like $mod + o in vim not +" act in i3wm + +"""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Plugin config and key maping +"""""""""""""""""""""""""""""""""""""""""""""""""""""" +" ctrlp.vim + +" NERDTree +map :NERDTreeToggle +" NERDCommenter + +" Colorscheme and setting +map ccl :colorscheme base16-tomorrow +map ccn :colorscheme base16-atelier-seaside +" colorscheme base16-google-dark +" colorscheme base16-default-dark +" colorscheme base16-github +colorscheme base16-tomorrow-night +hi LineNr guibg=bg +hi vertsplit guifg=bg guibg=bg + +" Tagbar +nnoremap tt :TagbarToggle +nnoremap tj :TagbarOpen j + +" tslime +let g:tslime_normal_mapping = 't' +let g:tslime_visual_mapping = 't' +let g:tslime_vars_mapping = 'T' + +" completor +let g:completor_php_omni_trigger = '([\w-]+|::[\w-]*|[\w-]+->\s*[\w-]*)$' + +" Syntastic +set statusline+=%#warningmsg# +set statusline+=%{SyntasticStatuslineFlag()} +set statusline+=%* + +let g:syntastic_always_populate_loc_list = 1 +let g:syntastic_auto_loc_list = 1 +let g:syntastic_check_on_open = 1 +let g:syntastic_check_on_wq = 0 + +"""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Functions and auto commands +"""""""""""""""""""""""""""""""""""""""""""""""""""""" +fun! TrimWhitespace() + let l:save = winsaveview() + %s/\s\+$//e + call winrestview(l:save) +endfun + +fun! ComplieCurrentCProgram() + w + !gcc % -o %< && ./%< +endfun + +augroup autosourcing + autocmd! + autocmd BufWritePost ~/.vimrc source % +augroup END -- cgit v1.2.3