Created
July 28, 2017 11:24
-
-
Save Anan5a/b36ea5b4edc3aa4611de65e7e8437f97 to your computer and use it in GitHub Desktop.
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 nocompatible | |
filetype off | |
set rtp+=~/.vim/bundle/Vundle.vim | |
call vundle#begin() | |
Plugin 'VundleVim/Vundle.vim' | |
" ------Plugins------- | |
Plugin 'scrooloose/nerdtree' | |
Plugin 'tpope/vim-surround' | |
Plugin 'gcmt/breeze.vim' | |
Plugin 'kien/ctrlp.vim' | |
Plugin 'SirVer/ultisnips' | |
Plugin 'tomtom/tcomment_vim' | |
Plugin 'vim-airline/vim-airline' | |
Plugin 'vim-airline/vim-airline-themes' | |
Plugin 'airblade/vim-gitgutter' | |
Plugin 'Shougo/neocomplete' | |
Plugin 'Shougo/neosnippet' | |
Plugin 'Shougo/neosnippet-snippets' | |
Plugin 'davidhalter/jedi-vim' | |
Plugin 'shawncplus/phpcomplete.vim' | |
Plugin 'honza/vim-snippets' | |
" Color Themes | |
Plugin 'colors' | |
call vundle#end() | |
colorscheme Monokai | |
filetype plugin indent on | |
"""""""" | |
if has('autocmd') | |
filetype plugin indent on | |
endif | |
if has('syntax') && !exists('g:syntax_on') | |
syntax enable | |
endif | |
" Use :help 'option' to see the documentation for the given option. | |
set autoindent | |
set backspace=indent,eol,start | |
set complete-=i | |
set showmatch | |
set showmode | |
set smarttab | |
set nrformats-=octal | |
set shiftround | |
set ttimeout | |
set ttimeoutlen=50 | |
set incsearch | |
" Use <C-L> to clear the highlighting of :set hlsearch. | |
if maparg('<C-L>', 'n') ==# '' | |
nnoremap <silent> <C-L> :nohlsearch<CR><C-L> | |
endif | |
set laststatus=2 | |
set ruler | |
set showcmd | |
set wildmenu | |
set autoread | |
set encoding=utf-8 | |
set tabstop=2 shiftwidth=2 expandtab | |
set listchars=tab:▒░,trail:▓ | |
set list | |
inoremap <C-U> <C-G>u<C-U> | |
set number | |
set hlsearch | |
set ignorecase | |
set smartcase | |
" Don't use Ex mode, use Q for formatting | |
map Q gq | |
" In many terminal emulators the mouse works just fine, thus enable it. | |
if has('mouse') | |
set mouse=a | |
endif | |
" do not history when leavy buffer | |
set hidden | |
" FIXME: (broken) ctrl s to save | |
noremap <C-S> :update<CR> | |
vnoremap <C-S> <C-C>:update<CR> | |
inoremap <C-S> <Esc>:update<CR> | |
set nobackup | |
set nowritebackup | |
set noswapfile | |
set fileformats=unix,dos,mac | |
" exit insert mode | |
inoremap <C-c> <Esc> | |
set completeopt=menuone,longest,preview | |
" | |
" Plugins config | |
" | |
" NERDTree | |
nnoremap <S-n> :NERDTreeToggle<CR> | |
" CtrlP | |
set wildignore+=*/.git/*,*/.hg/*,*/.svn/* | |
" Ultisnip | |
" NOTE: <f1> otherwise it overrides <tab> forever | |
let g:UltiSnipsExpandTrigger="<f1>" | |
let g:UltiSnipsJumpForwardTrigger="<f1>" | |
let g:UltiSnipsJumpBackwardTrigger="<c-k>" | |
let g:did_UltiSnips_vim_after = 1 | |
" vim-airline | |
let g:airline#extensions#tabline#enabled = 1 | |
let g:airline_powerline_fonts = 1 | |
" | |
" Basic shortcuts definitions | |
" most in visual mode / selection (v or ⇧ v) | |
" | |
" Find | |
map <C-f> / | |
" indent / deindent after selecting the text with (⇧ v), (.) to repeat. | |
vnoremap <Tab> > | |
vnoremap <S-Tab> < | |
" comment / decomment & normal comment behavior | |
vmap <C-m> gc | |
" Disable tComment to escape some entities | |
let g:tcomment#replacements_xml={} | |
" Text wrap simpler, then type the open tag or '," | |
vmap <C-w> S | |
" Cut, Paste, Copy | |
vmap <C-x> d | |
vmap <C-v> p | |
vmap <C-c> y | |
" Undo, Redo (broken) | |
nnoremap <C-z> :undo<CR> | |
inoremap <C-z> <Esc>:undo<CR> | |
nnoremap <C-y> :redo<CR> | |
inoremap <C-y> <Esc>:redo<CR> | |
" Tabs | |
let g:airline_theme='badwolf' | |
let g:airline#extensions#tabline#enabled = 1 | |
nnoremap <C-b> :tabprevious<CR> | |
inoremap <C-b> <Esc>:tabprevious<CR>i | |
nnoremap <C-n> :tabnext<CR> | |
inoremap <C-n> <Esc>:tabnext<CR>i | |
nnoremap <C-t> :tabnew<CR> | |
inoremap <C-t> <Esc>:tabnew<CR>i | |
nnoremap <C-k> :tabclose<CR> | |
inoremap <C-k> <Esc>:tabclose<CR>i | |
" lazy ':' | |
map \ : | |
let mapleader = ',' | |
nnoremap <Leader>p :set paste<CR> | |
nnoremap <Leader>o :set nopaste<CR> | |
noremap <Leader>g :GitGutterToggle<CR> | |
" this machine config | |
if filereadable(expand("~/.vimrc.local")) | |
source ~/.vimrc.local | |
endif | |
let g:phpcomplete_mappings = { | |
\ 'jump_to_def': ',g', | |
\ } | |
" autocmd FileType javascript setlocal omnifunc=tern#Complete | |
" Note: This option must be set in .vimrc(_vimrc). NOT IN .gvimrc(_gvimrc)! | |
" Disable AutoComplPop. | |
let g:acp_enableAtStartup = 0 | |
" Use neocomplete. | |
let g:neocomplete#enable_at_startup = 1 | |
" Use smartcase. | |
let g:neocomplete#enable_smart_case = 1 | |
" Set minimum syntax keyword length. | |
let g:neocomplete#sources#syntax#min_keyword_length = 3 | |
" Define dictionary. | |
let g:neocomplete#sources#dictionary#dictionaries = { | |
\ 'default' : '' , | |
\ 'vimshell' : $HOME . '/.vimshell_hist' , | |
\ 'scheme' : $HOME . '/.gosh_completions' | |
\ } | |
" Define keyword. | |
if !exists( 'g:neocomplete#keyword_patterns' ) | |
let g:neocomplete#keyword_patterns = {} | |
endif | |
let g:neocomplete#keyword_patterns[ 'default' ] = '\h\w*' | |
" Plugin key-mappings. | |
inoremap <expr><C-g> neocomplete#undo_completion () | |
inoremap <expr><C-l> neocomplete#complete_common_string () | |
" Recommended key-mappings. | |
" <CR>: close popup and save indent. | |
inoremap <silent> <CR> <C-r> = <SID>my_cr_function()<CR> | |
function! s:my_cr_function() | |
return (pumvisible() ? "\<C-y>" : "") . "\<CR>" | |
" For no inserting <CR> key. | |
"return pumvisible() ? "\<C-y>" : "\<CR>" | |
endfunction | |
" <TAB>: completion. | |
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>" | |
" <C-h>, <BS>: close popup and delete backword char. | |
inoremap <expr><C-h> neocomplete#smart_close_popup (). "\<C-h>" | |
inoremap <expr><BS> neocomplete#smart_close_popup ()."\<C-h>" | |
" Close popup by <Space>. | |
"inoremap <expr><Space> pumvisible() ? "\<C-y>" : "\<Space>" | |
" AutoComplPop like behavior. | |
"let g:neocomplete#enable_auto_select = 1 | |
" Shell like behavior(not recommended). | |
"set completeopt+=longest | |
"let g:neocomplete#enable_auto_select = 1 | |
"let g:neocomplete#disable_auto_complete = 1 | |
"inoremap <expr><TAB> pumvisible() ? "\<Down>" : "\<C-x>\<C-u>" | |
" 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 | |
" Enable heavy omni completion. | |
if !exists( 'g:neocomplete#sources#omni#input_patterns' ) | |
let g:neocomplete#sources#omni#input_patterns = {} | |
endif | |
let g:neocomplete#sources#omni#input_patterns.php = '[^. \t]->\h\w*\|\h\w*::' | |
let g:neocomplete#sources#omni#input_patterns.c = '[^.[:digit:]*\t]\%(\.\|->\)' | |
let g:neocomplete#sources#omni#input_patterns.cpp = '[^.[:digit:]*\t]\%(\.\|->\)\|\h\w*::' | |
" For perlomni.vim setting. | |
" https://github.com/c9s/perlomni.vim | |
let g:neocomplete#sources#omni#input_patterns.perl = '\h\w*->\h\w*\|\h\w*::' | |
" Plugin key-mappings. | |
" Note: It must be "imap" and "smap". It uses <Plug> mappings. | |
imap <C-k> <Plug> (neosnippet_expand_or_jump) | |
smap <C-k> <Plug> (neosnippet_expand_or_jump) | |
xmap <C-k> <Plug> (neosnippet_expand_target) | |
" SuperTab like snippets behavior. | |
" Note: It must be "imap" and "smap". It uses <Plug> mappings. | |
imap <C-k> <Plug> (neosnippet_expand_or_jump) | |
"imap <expr><TAB> | |
" \ pumvisible() ? "\<C-n>" : | |
" \ neosnippet#expandable_or_jumpable() ? | |
" \ "\<Plug>(neosnippet_expand_or_jump)" : "\<TAB>" | |
smap <expr><TAB> neosnippet#expandable_or_jumpable () ? | |
\ "\<Plug>(neosnippet_expand_or_jump)" : "\<TAB>" | |
" For conceal markers. | |
if has( 'conceal' ) | |
set conceallevel=2 | |
set concealcursor=niv | |
endif | |
" Enable snipMate compatibility feature. | |
let g:neosnippet#enable_snipmate_compatibility = 1 | |
" Tell Neosnippet about the other snippets | |
let g:neosnippet#snippets_directory = '~/.vim/bundle/vim-snippets/snippets' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment