Skip to content

Instantly share code, notes, and snippets.

@tokers
Created March 6, 2017 09:03
Show Gist options
  • Save tokers/e675cdd7406a8a7b8dc2da69eb5c47e5 to your computer and use it in GitHub Desktop.
Save tokers/e675cdd7406a8a7b8dc2da69eb5c47e5 to your computer and use it in GitHub Desktop.
vimrc
" Copyright 2014-2017 Alex(zchao1995@gmail.com)
"================================================Basic Settings================================================================="
set number " 显示行号
set relativenumber " 相对行号
set autoindent " (autoindent)自动缩排
set cindent " 使用C的缩进方式
set smartindent " 智能缩进
syntax on " 语法高亮
syntax enable
set history=1000
set t_Co=256
set tabstop=4 " 设置tab宽度为4个空格
set softtabstop=4 " 使用退格键一次可以删除4个空格
set expandtab
set shiftwidth=4
set textwidth=79
set fileformat=unix
set showcmd
set mouse=a
set nobackup " 不备份
set encoding=utf-8 " 文件编码使用UTF8
set noswapfile " 不使用交换文件
set autowrite " 自动保存
set nocompatible " 不兼容vi, 可以用退格键删除字符
set backspace=2
set autochdir
set foldmethod=indent " 根据缩紧折叠代码
set foldlevel=99
set tags=tags;/
set cursorline cursorcolumn
set completeopt=longest,menu
set laststatus=2
"abbreviations
iabbrev slef self
iabbrev adn and
iabbrev tpye type
iabbrev aelx alex
"Vim Tmux compatible
if exists('$TMUX')
set term=screen-256color
endif
if has('gui_running')
set background=dark
colorscheme solarized
set guifont=Source\ Code\ Pro\ for\ Powerline:h14
set guioptions-=r
set guioptions-=L
else
set background=dark
colorscheme solarized
let g:solarized_contrast="high"
" colorscheme monrovia
" colorscheme lucario
endif
set fillchars+=vert:\
"==================================================Match Settings=============================================="
set hlsearch " 高亮显示所有匹配串
nohlsearch " 取消高亮
noremap <silent> <C-y> :nohlsearch<Bar>:echo<CR> " 关闭高亮
set ignorecase smartcase " 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感
set incsearch "输入搜索内容时即显示结果
"==================================================Mapping Settings=================================================="
"
noremap <C-h> <C-w>h
noremap <C-j> <C-w>j
noremap <C-k> <C-w>k
noremap <C-l> <C-w>l
noremap <C-=> <C-w>=
noremap <C-q> <C-w>q
noremap <C-c> <C-w>c
nnoremap H ^
nnoremap L $
noremap ^L ^wL
noremap ^J ^wJ
noremap ^K ^wK
noremap ^H ^wH
noremap <tab> :bn <CR>
noremap <s-tab> :bp <CR>
let mapleader = '`'
nnoremap <leader>ev :vsplit $MYVIMRC<CR>
nnoremap <leader>sv :source $MYVIMRC<CR>
nnoremap <leader>pv :set paste!<CR>
nnoremap <F4> :vertical resize +10<CR>
nnoremap <F5> :vertical resize -10<CR>
let mapleader = 'y'
inoremap <expr> <Up> pumvisible() ? "\<C-p>" : "\<Up>"
inoremap <expr> <PageDown> pumvisible() ? "\<PageDown>\<C-p>\<C-n>" : "\<PageDown>"
inoremap <expr> <PageUp> pumvisible() ? "\<PageUp>\<C-p>\<C-n>" : "\<PageUp>"
nnoremap <space> za
nnoremap ]h <Plug>GitGutterNextHunk
nnoremap [h <Plug>GitGutterPrevHunk
noremap <F3> :NERDTreeToggle <CR> " F3 切换Nerdtree
inoremap <F3> <ESC>:NERDTreeToggle <CR>
noremap <F2> :TagbarToggle <CR>
inoremap <F2> :TagbarToggle <CR>
"==================================================Plugin Settings=================================================="
filetype off "Vundle manage the plugin
set rtp+=~/.vim/Vundle.vim
call vundle#begin()
Plugin 'tpope/vim-fugitive'
Plugin 'godlygeek/tabular'
Plugin 'bling/vim-airline'
Plugin 'vim-airline/vim-airline-themes'
Plugin 'ervandew/supertab'
let g:SuperTabDefaultCompletionType = "<c-n>"
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
"enable modified detection >
let g:airline_detect_modified=1
"enable paste detection
let g:airline_detect_paste=1
"enable crypt detection
let g:airline_detect_crypt=1
"enable spell detection
let g:airline_detect_spell=1
let g:airline#extensions#branch#enabled = 1
let g:airline#extensions#branch#empty_message = ''
let g:airline#extensions#branch#vcs_priority = ["git", "mercurial"]
let g:airline#extensions#branch#displayed_head_limit = 10
let g:airline#extensions#branch#format = 1
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#left_sep = ''
let g:airline#extensions#tabline#left_alt_sep = ''
let g:airline#extensions#tabline#fnamemod = ':t'
let g:airline#extensions#wordcount#enabled = 1
let g:airline#extensions#tabline#buffer_nr_show = 1
let g:airline_enable_branch = 1
let g:airline_powerline_fonts = 1
let g:airline_theme = 'solarized'
" let g:airline_theme = 'papercolor'
Plugin 'scrooloose/nerdtree' " nerdtree
Plugin 'airblade/vim-gitgutter'
let g:gitgutter_max_signs = 500
Plugin 'spf13/vim-autoclose'
let g:autoclose_vim_commentmode = 1
"
Plugin 'vladh/tagbar'
let g:tagbar_autofocus = 1
Plugin 'mileszs/ack.vim'
call vundle#end()
filetype plugin indent on
"=========================================================Autocmd Settings===========================================================
autocmd WinEnter,BufUnload,BufEnter,BufHidden,BufWinEnter,BufRead,BufNewFile *.conf setfiletype nginx " 使用 nginx 的语法高亮
autocmd WinEnter,BufUnload,BufEnter,BufHidden,BufWinEnter,BufRead,BufNewFile *.rewrite setfiletype rewrite " 使用 UPYUN rewrite 的语法高亮
autocmd WinEnter,BufUnload,BufEnter,BufHidden,BufWinEnter,BufRead,BufNewFile *.zt setfiletype ztest " 使用 UPYUN rewrite 的语法高亮
let mapleader = '-'
augroup comment
autocmd FileType python,conf nnoremap <leader>c I#<space><space><space><space> <esc>
autocmd FileType c nnoremap <leader>c I/*<space><esc>A<space>*/<esc>
autocmd FileType h nnoremap <leader>c I/*<space><esc>A<space>*/<esc>
autocmd FileType cpp nnoremap <leader>c I// <esc>
autocmd FileType lua nnoremap <leader>c I-- <esc>
autocmd FileType c vnoremap<leader>vt A<esc>bi/*<space><esc>ea<space>*/ " 注释选中的单词
autocmd FileType h vnoremap<leader>vt A<esc>bi/*<space><esc>ea<space>*/ " 注释选中的单词
augroup end
augroup luaquickinput
autocmd FileType lua nnoremap <leader>lw ongx.log(ngx.WARN, )<esc>i
autocmd FileType lua nnoremap <leader>lb ongx.log(ngx.DEBUG, )<esc>i
autocmd FileType lua nnoremap <leader>le ongx.log(ngx.ERR, )<esc>i
autocmd FileType lua nnoremap <leader>lf olocal function ()<esc>oend<esc>kwwi
autocmd FileType lua nnoremap <leader>gf o_M.function ()<esc>oend<esc>kwwi
autocmd FileType lua nnoremap <leader>lfi olocal function () end<esc>bi
autocmd FileType lua nnoremap <leader>gfi o_M.function () end<esc>bi
autocmd FileType lua nnoremap <leader>fori ofor in ipairs() do<esc>oend<esc>kwi
autocmd FileType lua nnoremap <leader>for ofor in pairs() do<esc>oend<esc>kwi
augroup end
autocmd InsertLeave * if pumvisible() == 0|pclose|endif
autocmd BufEnter * set cursorline nocursorcolumn
autocmd BufLeave * set cursorline nocursorcolumn
autocmd Filetype lua setlocal iskeyword+=:
autocmd Filetype lua setlocal iskeyword+=\.
au InsertEnter * set cursorline cursorcolumn
au InsertLeave * set nocursorcolumn
autocmd WinEnter * set cursorline cursorcolumn
autocmd WinLeave * set cursorline nocursorcolumn
autocmd BufEnter * set cursorline nocursorcolumn
autocmd BufLeave * set cursorline nocursorcolumn
autocmd InsertEnter * set cursorline cursorcolumn
autocmd InsertLeave * set nocursorcolumn
"------------------------------------------------Hack For Solarized----------------------------------------------------
highlight EndOfBuffer ctermfg=8 ctermbg=None
highlight LineNr ctermbg=8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment