-
-
Save monkeym4ster/85eeae940543ca584604 to your computer and use it in GitHub Desktop.
vimrc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set nocompatible " Don't be compatible with vi | |
let mapleader="," " change the leader to be a comma vs slash | |
command! W :w | |
cmap W! w !sudo tee % >/dev/null | |
map <silent> <leader>V :source ~/.vimrc<CR>:filetype detect<CR>:exe ":echo 'vimrc reloaded'"<CR> | |
nmap <leader>c :copen<CR> | |
nmap <leader>cc :cclose<CR> | |
cmap w!! w !sudo tee % >/dev/null | |
map <c-j> <c-w>j | |
map <c-k> <c-w>k | |
map <c-l> <c-w>l | |
map <c-h> <c-w>h | |
imap <C-W> <C-O><C-W> | |
nnoremap <F2> :set nonumber! number?<CR> | |
nnoremap <F3> :set list! list?<CR> | |
nnoremap <F4> :set wrap! wrap?<CR> | |
set pastetoggle=<F5> " when you are in insert mode, press f5 get in paste mode | |
vmap <c-c> "+y | |
xnoremap p pgvy | |
syntax on " syntax highlighing | |
syntax enable " enable syntax | |
filetype on " try to detect filetypes | |
set number " Display line numbers | |
set numberwidth=1 " using only 1 column (and 1 space) while possible | |
set background=dark " We are using dark background in vim | |
set title " show title in console title bar | |
set wildmenu " Menu completion in command mode on <Tab> | |
set wildmode=full " <Tab> cycles between all matching choices. | |
set list " show tabs and spaces | |
set noerrorbells | |
set vb t_vb= | |
set wildignore+=*.o,*.obj,.git,*.pyc | |
set wildignore+=eggs/** | |
set wildignore+=*.egg-info/** | |
set grepprg=ack " replace the default grep program with ack | |
nnoremap <leader>. :lcd %:p:h<CR> | |
set completeopt=menuone,longest,preview | |
set pumheight=6 " Keep a small completion window | |
set cursorline " have a line indicate the cursor location | |
set ruler " show the cursor position all the time | |
set nostartofline " Avoid moving cursor to BOL when jumping around | |
set virtualedit=block " Let cursor move past the last char in <C-v> mode | |
set scrolloff=3 " Keep 3 context lines above and below the cursor | |
set backspace=2 " Allow backspacing over autoindent, EOL, and BOL | |
set showmatch " Briefly jump to a paren once it's balanced | |
set nowrap " don't wrap text | |
set linebreak " don't wrap textin the middle of a word | |
set autoindent " always set autoindenting on | |
set smartindent " use smart indent if there is no indent file | |
set tabstop=4 " <tab> inserts 4 spaces | |
set shiftwidth=4 " but an indent level is 2 spaces wide. | |
set softtabstop=4 " <BS> over an autoindent deletes both spaces. | |
set expandtab " Use spaces, not tabs, for autoindent/tab key. | |
set shiftround " rounds indent to a multiple of shiftwidth | |
set matchpairs+=<:> " show matching <> (html mainly) as well | |
set foldmethod=indent " allow us to fold on indents | |
set foldlevel=99 " don't fold by default | |
set undolevels=1000 " how many undos | |
set undoreload=10000 " how many reloads | |
inoremap # # | |
autocmd CursorMovedI * if pumvisible() == 0|pclose|endif | |
autocmd InsertLeave * if pumvisible() == 0|pclose|endif | |
set noautowrite " Never write a file unless I request it. | |
set noautowriteall " NEVER. | |
set noautoread " Don't automatically re-read changed files. | |
set modeline " Allow vim options to be embedded in files; | |
set modelines=5 " they must be within the first or last 5 lines. | |
set ffs=unix,dos,mac " Try recognizing dos, unix, and mac line endings. | |
set encoding=utf-8 " file encoding | |
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1 | |
set ls=2 " allways show status line | |
set vb t_vb= " Disable all bells. I hate ringing/flashing. | |
set confirm " Y-N-C prompt if closing with unsaved changes. | |
set showcmd " Show incomplete normal mode commands as I type. | |
set report=0 " : commands always print changed line count. | |
set shortmess+=a " Use [+]/[RO]/[w] for modified/readonly/written. | |
set ruler " Show some info, even without statuslines. | |
set laststatus=2 " Always show statusline, even if only 1 window. | |
" set statusline=[%l,%v\ %P%M]\ %f\ %r%h%w\ (%{&ff})\ %{fugitive#statusline()} | |
set listchars=tab:>-,eol:$,trail:-,precedes:<,extends:> | |
set ignorecase " Default to using case insensitive searches, | |
set smartcase " unless uppercase letters are used in the regex. | |
set smarttab " Handle tabs more intelligently | |
set hlsearch " Highlight searches by default. | |
set incsearch " Incrementally search while typing a /regex | |
if has("gui_running") | |
set guioptions-=m | |
set t_Co=256 | |
set guioptions-=T | |
endif | |
map <leader>p "+p | |
nnoremap <leader>q :q<CR> | |
nnoremap <leader><space> :nohlsearch<cr> | |
nnoremap <leader>S :%s/\s\+$//<cr>:let @/=''<CR> | |
inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>" | |
au BufRead *.js set makeprg=jslint\ % | |
autocmd BufNewFile,BufRead *.mako,*.mak,*.jinja2 setlocal ft=html | |
autocmd FileType html,xhtml,xml,css setlocal expandtab shiftwidth=2 tabstop=2 softtabstop=2 | |
au FileType python set omnifunc=pythoncomplete#Complete | |
au FileType python setlocal expandtab shiftwidth=4 tabstop=8 softtabstop=4 smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class,with | |
au FileType coffee setlocal expandtab shiftwidth=4 tabstop=8 softtabstop=4 smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class,with | |
au BufRead *.py set efm=%C\ %.%#,%A\ \ File\ \"%f\"\\,\ line\ %l%.%#,%Z%[%^\ ]%\\@=%m | |
au FileType ruby setlocal expandtab shiftwidth=2 tabstop=2 softtabstop=2 smartindent cinwords=if,elsif,else,unless,for,while,begin,rescue,def,class,module | |
au BufRead *.rb set cinwords=if,elsif,else,unless,for,while,begin,rescue,def,class,module | |
au BufRead *.js set makeprg=jslint\ % | |
au BufRead,BufNewFile *.nse set filetype=lua | |
au BufRead,BufNewFile *.go set filetype=go | |
au BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn} set filetype=mkd | |
if has('python') | |
py << EOF | |
import os.path | |
import sys | |
import vim | |
if 'VIRTUAL_ENV' in os.environ: | |
project_base_dir = os.environ['VIRTUAL_ENV'] | |
sys.path.insert(0, project_base_dir) | |
activate_this = os.path.join(project_base_dir, 'bin/activate_this.py') | |
execfile(activate_this, dict(__file__=activate_this)) | |
EOF | |
endif | |
" Load up virtualenv's vimrc if it exists | |
if filereadable($VIRTUAL_ENV . '/.vimrc') | |
source $VIRTUAL_ENV/.vimrc | |
endif | |
if exists("&colorcolumn") | |
set colorcolumn=79 | |
endif | |
" =============== Turn on ==================== | |
filetype plugin indent on | |
" for error highlight,防止错误整行标红导致看不清 | |
highlight clear SpellBad | |
highlight SpellBad term=standout ctermfg=1 term=underline cterm=underline | |
highlight clear SpellCap | |
highlight SpellCap term=underline cterm=underline | |
highlight clear SpellRare | |
highlight SpellRare term=underline cterm=underline | |
highlight clear SpellLocal | |
highlight SpellLocal term=underline cterm=underline | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment