Last active
November 9, 2016 11:32
-
-
Save Svtter/e2c7a13619b3572bf65de972a5a43aa0 to your computer and use it in GitHub Desktop.
vimrc for windows
This file contains 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
" vim: set sw=4 ts=4 sts=4 et tw=78 foldmarker={,} foldlevel=0 foldmethod=marker spell: | |
"" Plug: | |
"" | |
call plug#begin('~/.vim/plugged') | |
Plug 'junegunn/vim-easy-align' | |
Plug 'Svtter/map.vim' | |
Plug 'scrooloose/nerdtree' | |
Plug 'majutsushi/tagbar' | |
Plug 'sessionman.vim' | |
" Python | |
Plug 'klen/python-mode' | |
" Neocomplete | |
Plug 'Shougo/neocomplcache' | |
Plug 'Shougo/neosnippet' | |
Plug 'Shougo/neosnippet-snippets' | |
Plug 'honza/vim-snippets' | |
" youcompleteme | |
" Plug 'Valloric/YouCompleteMe' | |
" Plug 'SirVer/ultisnips' | |
" Plug 'honza/vim-snippets' | |
" Go | |
Plug 'fatih/vim-go' | |
" Misc | |
Plug 'tpope/vim-markdown' | |
" General Programming: | |
Plug 'scrooloose/nerdcommenter' | |
Plug 'jiangmiao/auto-pairs' | |
Plug 'ctrlpvim/ctrlp.vim' | |
Plug 'tacahiroy/ctrlp-funky' | |
Plug 'godlygeek/tabular' | |
Plug 'mbbill/undotree' | |
Plug 'tpope/vim-surround' | |
Plug 'tpope/vim-repeat' | |
Plug 'terryma/vim-multiple-cursors' | |
Plug 'mklabs/vim-fetch' | |
" color | |
Plug 'powerline/fonts' | |
Plug 'flazz/vim-colorschemes' | |
Plug 'vim-airline/vim-airline' | |
Plug 'vim-airline/vim-airline-themes' | |
"Plug 'Lokaltog/vim-powerline' | |
Plug 'junegunn/seoul256.vim' | |
Plug 'zeis/vim-kolor' | |
" javascript | |
Plug 'elzr/vim-json' | |
Plug 'groenewege/vim-less' | |
Plug 'pangloss/vim-javascript' | |
Plug 'briancollins/vim-jst' | |
Plug 'kchmck/vim-coffee-script' | |
" Syntax | |
Plug 'scrooloose/syntastic' | |
" Git | |
Plug 'tpope/vim-fugitive' | |
" Html | |
Plug 'othree/html5.vim' | |
Plug 'Shougo/vimproc.vim', {'do' : 'make'} | |
"Plug 'wincent/command-t', { | |
"\ 'do': 'cd ruby/command-t && ruby extconf.rb && make' | |
"\ } | |
Plug 'Svtter/ACM.vim' | |
call plug#end() | |
" Config: | |
" airline | |
let g:airline#extensions#tabline#enabled = 1 | |
"let g:airline_powerline_fonts = 1 | |
let g:airline_theme = 'kolor' | |
" -----------------------------------------------------------------------------" | |
"ctag | |
set tags=./tags;/,~/.vimtags | |
" Make tags placed in .git/tags file available in all levels of a repository | |
let gitroot = substitute(system('git rev-parse --show-toplevel'), '[\n\r]', '', 'g') | |
if gitroot != '' | |
let &tags = &tags . ',' . gitroot . '/.git/tags' | |
endif | |
" -----------------------------------------------------------------------------" | |
" -----------------------------------------------------------------------------" | |
" sessionman | |
" | |
set sessionoptions=blank,buffers,curdir,folds,tabpages,winsize | |
nmap <leader>sl :SessionList<CR> | |
nmap <leader>ss :SessionSave<CR> | |
nmap <leader>sc :SessionClose<CR> | |
" -----------------------------------------------------------------------------" | |
" UndoTree | |
" -----------------------------------------------------------------------------" | |
nnoremap <Leader>u :UndotreeToggle<CR> | |
let g:undotree_SetFocusWhenToggle=1 | |
" -----------------------------------------------------------------------------" | |
" -----------------------------------------------------------------------------" | |
" Tabularize | |
nmap <Leader>a& :Tabularize /&<CR> | |
vmap <Leader>a& :Tabularize /&<CR> | |
nmap <Leader>a= :Tabularize /^[^=]*\zs=<CR> | |
vmap <Leader>a= :Tabularize /^[^=]*\zs=<CR> | |
nmap <Leader>a=> :Tabularize /=><CR> | |
vmap <Leader>a=> :Tabularize /=><CR> | |
nmap <Leader>a: :Tabularize /:<CR> | |
vmap <Leader>a: :Tabularize /:<CR> | |
nmap <Leader>a:: :Tabularize /:\zs<CR> | |
vmap <Leader>a:: :Tabularize /:\zs<CR> | |
nmap <Leader>a, :Tabularize /,<CR> | |
vmap <Leader>a, :Tabularize /,<CR> | |
nmap <Leader>a,, :Tabularize /,\zs<CR> | |
vmap <Leader>a,, :Tabularize /,\zs<CR> | |
nmap <Leader>a<Bar> :Tabularize /<Bar><CR> | |
vmap <Leader>a<Bar> :Tabularize /<Bar><CR> | |
" -----------------------------------------------------------------------------" | |
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 | |
" Golang: | |
let g:go_highlight_functions = 1 | |
let g:go_highlight_methods = 1 | |
let g:go_highlight_structs = 1 | |
let g:go_highlight_operators = 1 | |
let g:go_highlight_build_constraints = 1 | |
let g:go_fmt_command = "goimports" | |
let g:syntastic_go_checkers = ['golint', 'govet', 'errcheck'] | |
let g:syntastic_mode_map = { 'mode': 'active', 'passive_filetypes': ['go'] } | |
au FileType go nmap <Leader>s <Plug>(go-implements) | |
au FileType go nmap <Leader>i <Plug>(go-info) | |
au FileType go nmap <Leader>e <Plug>(go-rename) | |
au FileType go nmap <leader>r <Plug>(go-run) | |
au FileType go nmap <leader>b <Plug>(go-build) | |
au FileType go nmap <leader>t <Plug>(go-test) | |
au FileType go nmap <Leader>gd <Plug>(go-doc) | |
au FileType go nmap <Leader>gv <Plug>(go-doc-vertical) | |
au FileType go nmap <leader>co <Plug>(go-coverage) | |
" Fugitive: | |
nnoremap <silent> <leader>gs :Gstatus<CR> | |
nnoremap <silent> <leader>gd :Gdiff<CR> | |
nnoremap <silent> <leader>gc :Gcommit<CR> | |
nnoremap <silent> <leader>gb :Gblame<CR> | |
nnoremap <silent> <leader>gl :Glog<CR> | |
nnoremap <silent> <leader>gp :Git push<CR> | |
nnoremap <silent> <leader>gr :Gread<CR> | |
nnoremap <silent> <leader>gw :Gwrite<CR> | |
nnoremap <silent> <leader>ge :Gedit<CR> | |
" Mnemonic _i_nteractive | |
nnoremap <silent> <leader>gi :Git add -p %<CR> | |
nnoremap <silent> <leader>gg :SignifyToggle<CR> | |
" NEO: | |
" -----------------------------------------------------------------------------" | |
" neocomp | |
let g:acp_enableAtStartup = 0 | |
let g:neocomplcache_enable_at_startup = 1 | |
let g:neocomplcache_enable_camel_case_completion = 1 | |
let g:neocomplcache_enable_smart_case = 1 | |
let g:neocomplcache_enable_underbar_completion = 1 | |
let g:neocomplcache_enable_auto_delimiter = 1 | |
let g:neocomplcache_max_list = 15 | |
let g:neocomplcache_force_overwrite_completefunc = 1 | |
" Define dictionary. | |
let g:neocomplcache_dictionary_filetype_lists = { | |
\ 'default' : '', | |
\ 'vimshell' : $HOME.'/.vimshell_hist', | |
\ 'scheme' : $HOME.'/.gosh_completions' | |
\ } | |
" Define keyword. | |
if !exists('g:neocomplcache_keyword_patterns') | |
let g:neocomplcache_keyword_patterns = {} | |
endif | |
let g:neocomplcache_keyword_patterns._ = '\h\w*' | |
" Plugin key-mappings { | |
" These two lines conflict with the default digraph mapping of <C-K> | |
imap <C-k> <Plug>(neosnippet_expand_or_jump) | |
smap <C-k> <Plug>(neosnippet_expand_or_jump) | |
if exists('g:spf13_noninvasive_completion') | |
inoremap <CR> <CR> | |
" <ESC> takes you out of insert mode | |
inoremap <expr> <Esc> pumvisible() ? "\<C-y>\<Esc>" : "\<Esc>" | |
" <CR> accepts first, then sends the <CR> | |
inoremap <expr> <CR> pumvisible() ? "\<C-y>\<CR>" : "\<CR>" | |
" <Down> and <Up> cycle like <Tab> and <S-Tab> | |
inoremap <expr> <Down> pumvisible() ? "\<C-n>" : "\<Down>" | |
inoremap <expr> <Up> pumvisible() ? "\<C-p>" : "\<Up>" | |
" Jump up and down the list | |
inoremap <expr> <C-d> pumvisible() ? "\<PageDown>\<C-p>\<C-n>" : "\<C-d>" | |
inoremap <expr> <C-u> pumvisible() ? "\<PageUp>\<C-p>\<C-n>" : "\<C-u>" | |
else | |
imap <silent><expr><C-k> neosnippet#expandable() ? | |
\ "\<Plug>(neosnippet_expand_or_jump)" : (pumvisible() ? | |
\ "\<C-e>" : "\<Plug>(neosnippet_expand_or_jump)") | |
smap <TAB> <Right><Plug>(neosnippet_jump_or_expand) | |
inoremap <expr><C-g> neocomplcache#undo_completion() | |
inoremap <expr><C-l> neocomplcache#complete_common_string() | |
"inoremap <expr><CR> neocomplcache#complete_common_string() | |
function! CleverCr() | |
if pumvisible() | |
if neosnippet#expandable() | |
let exp = "\<Plug>(neosnippet_expand)" | |
return exp . neocomplcache#close_popup() | |
else | |
return neocomplcache#close_popup() | |
endif | |
else | |
return "\<CR>" | |
endif | |
endfunction | |
" <CR> close popup and save indent or expand snippet | |
imap <expr> <CR> CleverCr() | |
" <CR>: close popup | |
" <s-CR>: close popup and save indent. | |
inoremap <expr><s-CR> pumvisible() ? neocomplcache#close_popup()."\<CR>" : "\<CR>" | |
"inoremap <expr><CR> pumvisible() ? neocomplcache#close_popup() : "\<CR>" | |
" <C-h>, <BS>: close popup and delete backword char. | |
inoremap <expr><BS> neocomplcache#smart_close_popup()."\<C-h>" | |
inoremap <expr><C-y> neocomplcache#close_popup() | |
endif | |
" <TAB>: completion. | |
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>" | |
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<TAB>" | |
" } | |
" 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 xml setlocal omnifunc=xmlcomplete#CompleteTags | |
autocmd FileType ruby setlocal omnifunc=rubycomplete#Complete | |
autocmd FileType haskell setlocal omnifunc=necoghc#omnifunc | |
" Enable heavy omni completion. | |
if !exists('g:neocomplcache_omni_patterns') | |
let g:neocomplcache_omni_patterns = {} | |
endif | |
let g:neocomplcache_omni_patterns.php = '[^. \t]->\h\w*\|\h\w*::' | |
let g:neocomplcache_omni_patterns.perl = '\h\w*->\h\w*\|\h\w*::' | |
let g:neocomplcache_omni_patterns.c = '[^.[:digit:] *\t]\%(\.\|->\)' | |
let g:neocomplcache_omni_patterns.cpp = '[^.[:digit:] *\t]\%(\.\|->\)\|\h\w*::' | |
let g:neocomplcache_omni_patterns.ruby = '[^. *\t]\.\h\w*\|\h\w*::' | |
let g:neocomplcache_omni_patterns.go = '\h\w*\.\?' | |
" -----------------------------------------------------------------------------" | |
" Terminal | |
" -----------------------------------------------------------------------------" | |
" tnoremap <Esc> <C-\><C-n> | |
set autoindent " Indent at the same level of the previous line | |
set shiftwidth=4 " Use indents of 4 spaces | |
set expandtab " Tabs are spaces, not tabs | |
set tabstop=4 " An indentation every four columns | |
set softtabstop=4 " Let backspace delete indent | |
set nojoinspaces " Prevents inserting two spaces after punctuation on a join (J) | |
set splitright " Puts new vsplit windows to the right of the current | |
set splitbelow " Puts new split windows to the bottom of the current | |
colo kolor | |
" Cursor: | |
let g:multi_cursor_use_default_mapping=0 | |
" Default mapping | |
let g:multi_cursor_next_key='<C-n>' | |
let g:multi_cursor_prev_key='<C-N>' | |
let g:multi_cursor_skip_key='<C-x>' | |
let g:multi_cursor_quit_key='<Esc>' | |
set guifont=Consolas_for_Powerline_FixedD:h9:cANSI:qDRAFT | |
if has("gui_running") | |
au GUIEnter * simalt ~x " 窗口启动时自动最大化 | |
set guioptions-=m " 隐藏菜单栏 | |
set guioptions-=T " 隐藏工具栏 | |
set guioptions-=L " 隐藏左侧滚动条 | |
set guioptions-=r " 隐藏右侧滚动条 | |
set guioptions-=b " 隐藏底部滚动条 | |
"set showtabline=0 " 隐藏Tab栏 | |
endif | |
filetype plugin indent on " Automatically detect file types. | |
syntax on " Syntax highlighting | |
set mouse=a " Automatically enable mouse usage | |
set mousehide " Hide the mouse cursor while typing | |
scriptencoding utf-8 | |
" file | |
set encoding=utf-8 | |
set rop=type:directx,gamma:1.0,contrast:0.5,level:1,geom:1,renmode:4,taamode:1 | |
"set autowrite " Automatically write a file when leaving a modified buffer | |
set shortmess+=filmnrxoOtT " Abbrev. of messages (avoids 'hit enter') | |
set viewoptions=folds,options,cursor,unix,slash " Better Unix / Windows compatibility | |
set virtualedit=onemore " Allow for cursor beyond last character | |
set history=1000 " Store a ton of history (default is 20) | |
set spell " Spell checking on | |
set hidden " Allow buffer switching without saving | |
set iskeyword-=. " '.' is an end of word designator | |
set iskeyword-=# " '#' is an end of word designator | |
set iskeyword-=- " '-' is an end of word designator | |
set backspace=indent,eol,start " Backspace for dummies | |
set linespace=0 " No extra spaces between rows | |
set number " Line numbers on | |
set showmatch " Show matching brackets/parenthesis | |
set incsearch " Find as you type search | |
set hlsearch " Highlight search terms | |
set winminheight=0 " Windows can be 0 line high | |
set ignorecase " Case insensitive search | |
set smartcase " Case sensitive when uc present | |
set wildmenu " Show list instead of just completing | |
set wildmode=list:longest,full " Command <Tab> completion, list matches, then longest common part, then all. | |
set whichwrap=b,s,h,l,<,>,[,] " Backspace and cursor keys wrap too | |
set scrolljump=5 " Lines to scroll when cursor leaves screen | |
set scrolloff=3 " Minimum lines to keep above and below cursor | |
set foldenable " Auto fold code | |
set list | |
set listchars=tab:?\ ,trail:?,extends:#,nbsp:. " Highlight problematic whitespace | |
set laststatus=2 | |
set ruler | |
" ctrl-p | |
set wildignore+=*\\tmp\\*,*.swp,*.zip,*.exe " Windows | |
let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$' | |
let g:ctrlp_custom_ignore = { | |
\ 'dir': '\v[\/]\.(git|hg|svn)$', | |
\ 'file': '\v\.(exe|so|dll)$', | |
\ 'link': 'some_bad_symbolic_links', | |
\ } | |
let g:ctrlp_extensions = ['tag', 'buffertag', 'quickfix', 'dir', 'rtscript', | |
\ 'undo', 'line', 'changes', 'mixed', 'bookmarkdir'] | |
let g:ctrlp_cmd = 'CtrlPMixed' | |
let g:ctrlp_lazy_update = 0 | |
let g:ctrlp_brief_prompt = 1 | |
let g:ctrlp_working_path_mode = 'ra' | |
let g:ctrlp_clear_cache_on_exit = 0 | |
" temp-setting: | |
cd ~/project/ | |
" python-mode: | |
let g:pymode_rope_completion = 1 | |
let g:pymode_doc = 1 |
This file contains 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 default editor to neovim | |
sudo update-alternatives --install /usr/bin/vi vi /usr/bin/nvim 60 | |
sudo update-alternatives --config vi | |
sudo update-alternatives --install /usr/bin/vim vim /usr/bin/nvim 60 | |
sudo update-alternatives --config vim | |
sudo update-alternatives --install /usr/bin/editor editor /usr/bin/nvim 60 | |
sudo update-alternatives --config editor |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment