" Author: Florian "Bluewind" Pritz set nocompatible set encoding=utf-8 " unicode encoding if &term =~# '^\(screen\|rxvt*\)$' "tty blinks otherwise set t_Co=256 endif set nobackup set noexpandtab set smarttab set tabstop=4 set shiftwidth=4 set softtabstop=4 set ruler " show me where the cursor is set rulerformat=%l/%L(%p%%),%c " a better ruler set showmatch " show matching brackets "set cindent set number " show line numbers set showmode " show mode at bottom of screen set hlsearch " highlight all search results set incsearch " increment search set ignorecase " case-insensitive search set smartcase " upper-case sensitive search set nowrapscan " stop searching at EOF set laststatus=2 set mouse=a set nopaste set foldmethod=marker "set smartindent set scrolloff=3 set showcmd set display=uhex "set list "set listchars=tab:>\ ,eol:$ set listchars=trail:·,precedes:«,extends:»,tab:▸\ ,eol:↲ set hidden set display+=lastline if exists("+undofile") set undofile if isdirectory($HOME . '/.vim/undo') == 0 :silent !mkdir -p ~/.vim/undo > /dev/null 2>&1 endif set undodir=~/.vim/undo// set undodir+=. endif set splitbelow set splitright set wildmenu set wildmode=full set wildignore=*.o,*.a,*.class,*.mo,*.la,*.swp,*.jpg,*.png,*.xpm,*.gif,*.pyc,*~,.git,.svn,.hg, set completeopt-=preview set complete+=k " enable dictionary completion set completeopt=menuone,menu,longest let mapleader = "," let g:sudo_no_gui = 1 let g:ycm_extra_conf_globlist = ['~/.ycm_extra_conf.py'] filetype off set runtimepath+=~/.vim/bundle/neobundle.vim/ call neobundle#rc(expand('~/.vim/bundle/')) NeoBundleFetch 'Shougo/neobundle.vim' NeoBundle 'scrooloose/syntastic' "NeoBundle 'Rip-Rip/clang_complete' "NeoBundle 'Shougo/neocomplete.vim' "NeoBundle 'Shougo/neosnippet.vim' "NeoBundle 'Shougo/neosnippet-snippets' "NeoBundle 'Shougo/vimproc.vim', { "\ 'build' : { "\ 'windows' : 'make -f make_mingw32.mak', "\ 'cygwin' : 'make -f make_cygwin.mak', "\ 'mac' : 'make -f make_mac.mak', "\ 'unix' : 'make -f make_unix.mak', "\ }, "\ } "NeoBundle 'osyo-manga/vim-reunions' "NeoBundle 'osyo-manga/vim-marching' " NeoBundle 'Valloric/YouCompleteMe' NeoBundle 'SirVer/ultisnips' " NeoBundle 'tpope/vim-unimpaired' NeoBundle 'tpope/vim-fugitive' NeoBundle 'tpope/vim-repeat' NeoBundle 'SudoEdit' NeoBundle 'rking/ag.vim' NeoBundle 'scrooloose/nerdtree' NeoBundle 'majutsushi/tagbar' NeoBundleCheck "aliases cnorea w!! w !sudo tee "%" > /dev/null cnorea qpd %!perl -pe 's/\=([0-9A-Fa-f]{2})/chr(hex($1))/ge; s/\=\n//;' com -range=% Fb :exec ",w !fb -e " . &filetype . " -n " . expand("%:t") syntax on filetype plugin indent on autocmd FileType text setlocal textwidth=78 autocmd BufReadPost * \ if line("'\"") > 1 && line("'\"") <= line("$") | \ exe "normal! g`\"" | \ endif if !exists(":DiffOrig") command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis \ | wincmd p | diffthis endif set runtimepath+=/usr/share/vim let python_highlight_all = 1 " common save shortcuts inoremap :wa nnoremap :w inoremap :q nnoremap :q inoremap :bd nnoremap :bd " movement mappings nnoremap l nnoremap h nnoremap k nnoremap j set = set = " unsupported options "set = "set = nnoremap  K nnoremap  J nnoremap L nnoremap H nnoremap K nnoremap J nnoremap gk nnoremap gj nnoremap j gj nnoremap k gk "au VimEnter * :NERDTreeToggle nmap :TagbarToggle noremap :NERDTreeToggle inoremap :NERDTreeToggle noremap :FufFile inoremap :FufFile "noremap :FuzzyFinderBuffer "inoremap :FuzzyFinderBuffer noremap :nohl inoremap :nohla let g:UltiSnipsJumpForwardTrigger="" let g:UltiSnipsExpandTrigger="" " #### Neocomplete config #### let g:acp_enableAtStartup = 0 let g:neocomplete#enable_at_startup = 1 let g:neocomplete#force_overwrite_completefunc = 1 let g:neocomplete#enable_smart_case = 1 let g:neocomplete#sources#syntax#min_keyword_length = 2 let g:neocomplete#disable_auto_complete = 0 let g:neocomplete#enable_auto_close_preview = 0 imap pumvisible() ? "\" : "\" "imap neosnippet#expandable_or_jumpable() ? "\ "\(neosnippet_expand_or_jump)" "\: pumvisible() ? "\" : "\" "smap neosnippet#expandable_or_jumpable() ? "\ "\(neosnippet_expand_or_jump)" "\: pumvisible() ? "\" : "\" ""\: "\" "inoremap =my_cr_function() "function! s:my_cr_function() ""return neocomplete#close_popup() . "\" "" For no inserting key. "return pumvisible() ? neocomplete#close_popup() : "\" "endfunction " For snippet_complete marker. if has('conceal') set conceallevel=2 concealcursor=vin endif " Enable heavy omni completion. if !exists('g:neocomplete_omni_patterns') let g:neocomplete_omni_patterns = {} endif let g:neocomplete_omni_patterns.php = '[^. \t]->\h\w*\|\h\w*::' let g:neocomplete_omni_patterns.c = '[^.[:digit:] *\t]\%(\.\|->\)' let g:neocomplete_omni_patterns.cpp = '[^.[:digit:] *\t]\%(\.\|->\)\|\h\w*::' " clang_complete support if !exists('g:neocomplete#force_omni_input_patterns') let g:neocomplete#force_omni_input_patterns = {} endif let g:neocomplete#force_overwrite_completefunc = 1 let g:neocomplete#force_omni_input_patterns.c = '[^.[:digit:] *\t]\%(\.\|->\)\w*' let g:neocomplete#force_omni_input_patterns.cpp = '[^.[:digit:] *\t]\%(\.\|->\)\w*\|\h\w*::\w*' let g:neocomplete#force_omni_input_patterns.objc = '[^.[:digit:] *\t]\%(\.\|->\)\w*' let g:neocomplete#force_omni_input_patterns.objcpp = '[^.[:digit:] *\t]\%(\.\|->\)\w*\|\h\w*::\w*' let g:clang_complete_auto = 0 let g:clang_auto_select = 0 let g:clang_complete_macros = 1 let g:clang_complete_patterns = 1 let g:clang_snippets=1 let g:clang_conceal_snippets=1 let g:clang_snippets_engine='clang_complete' let g:tagbar_left=1 let g:tagbar_autofocus=1 let g:tagbar_autoclose=1 " For perlomni.vim setting. " https://github.com/c9s/perlomni.vim let g:neocomplete_omni_patterns.perl = '\h\w*->\h\w*\|\h\w*::' 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 php set foldmethod=syntax autocmd FileType php set foldlevelstart=2 foldnestmax=2 autocmd FileType php let g:php_folding=2 autocmd FileType php let g:php_htmlInStrings=1 autocmd FileType make setlocal noexpandtab au FileType python set ts=4 sw=4 softtabstop=4 et autocmd BufRead,BufNewFile PKGBUILD let is_bash=1 | set ft=sh "colorscheme gardener "colorscheme desert256 "colorscheme candycode let g:jellybeans_background_color_256 = 'none' let g:jellybeans_overrides = { \ 'SpecialKey': { 'guifg': 'b0b0b0', 'guibg': '000000'} \} colorscheme jellybeans "colorscheme inkpot "colorscheme mustang "colorscheme wombat256 "colorscheme xoria256 " Toggle dark/light default colour theme for shitty terms "map :let &background = ( &background == "dark" ? "light" : "dark" ) " Compile and run keymappings au FileType php map :!php % au FileType python map :!python % au FileType perl map :!perl % au FileType ruby map :!ruby % au FileType lua map :!lua % au FileType html,xhtml map :!firefox % au FileType tex map :!texi2pdf -c % " Get the commit responsible for the current line nmap :call BlameCurrentLine() " Get the current line number & file name, view the git commit that inserted it fun! BlameCurrentLine() let lnum = line(".") let file = @% exec "!gitBlameFromLineNo " lnum file endfun map ggg?G``" apply rot13 for people snooping over shoulder, good fun highlight ExtraWhitespace ctermbg=red guibg=red autocmd Syntax * syn match ExtraWhitespace /\s\+$\| \+\ze\t/ containedin=ALL if !has("gui_running") if &term == "screen" set =Oc set =Od imap :bn imap :bp endif else set guifont=Dejavu\ Sans\ Mono\ 10 "set guioptions-=m set guioptions-=T set lines=80 columns=125 endif