Last active
August 18, 2016 04:59
-
-
Save hamaluik/0d77ed1687f7fa8b8918477608fb534c to your computer and use it in GitHub Desktop.
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 | |
source $VIMRUNTIME/mswin.vim | |
behave mswin | |
set diffexpr=MyDiff() | |
function MyDiff() | |
let opt = '-a --binary ' | |
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif | |
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif | |
let arg1 = v:fname_in | |
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif | |
let arg2 = v:fname_new | |
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif | |
let arg3 = v:fname_out | |
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif | |
let eq = '' | |
if $VIMRUNTIME =~ ' ' | |
if &sh =~ '\<cmd' | |
let cmd = '""' . $VIMRUNTIME . '\diff"' | |
let eq = '"' | |
else | |
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"' | |
endif | |
else | |
let cmd = $VIMRUNTIME . '\diff' | |
endif | |
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq | |
endfunction | |
set nocompatible " Fuck VI... That's for grandpas. | |
filetype off | |
set rtp+=$HOME/.vim/bundle/Vundle.vim | |
call vundle#begin() | |
Plugin 'VundleVim/Vundle.vim' | |
Plugin 'chriskempson/base16-vim' | |
Plugin 'kien/ctrlp.vim' | |
Plugin 'tpope/vim-commentary' | |
Plugin 'leshill/vim-json' | |
Plugin 'pangloss/vim-javascript' | |
Plugin 'indenthtml.vim' | |
Plugin 'tpope/vim-markdown' | |
Plugin 'vim-airline/vim-airline' | |
Plugin 'jdonaldson/vaxe' | |
Plugin 'scrooloose/syntastic' | |
Plugin 'bogado/file-line' | |
call vundle#end() " required | |
filetype plugin indent on " required | |
filetype plugin indent on " Filetype auto-detection | |
syntax on " Syntax highlighting | |
set tabstop=4 | |
set shiftwidth=4 | |
set softtabstop=4 | |
set expandtab " use spaces instead of tabs. | |
set smarttab " let's tab key insert 'tab stops', and bksp deletes tabs. | |
set shiftround " tab / shifting moves to closest tabstop. | |
set autoindent " Match indents on new lines. | |
set smartindent " Intellegently dedent / indent new lines based on rules. | |
" We have VCS -- we don't need this stuff. | |
set nobackup " We have vcs, we don't need backups. | |
set nowritebackup " We have vcs, we don't need backups. | |
set noswapfile " They're just annoying. Who likes them? | |
" don't nag me when hiding buffers | |
set hidden " allow me to have buffers with unsaved changes. | |
set autoread " when a file has changed on disk, just load it. Don't ask. | |
" Make search more sane | |
set ignorecase " case insensitive search | |
set smartcase " If there are uppercase letters, become case-sensitive. | |
set incsearch " live incremental searching | |
set showmatch " live match highlighting | |
set hlsearch " highlight matches | |
set gdefault " use the `g` flag by default. | |
" allow the cursor to go anywhere in visual block mode. | |
set virtualedit+=block | |
" leader is a key that allows you to have your own "namespace" of keybindings. | |
" You'll see it a lot below as <leader> | |
let mapleader = "," | |
" So we don't have to press shift when we want to get into command mode. | |
nnoremap ; : | |
vnoremap ; : | |
" So we don't have to reach for escape to leave insert mode. | |
inoremap jf <esc> | |
" create new vsplit, and switch to it. | |
noremap <leader>v <C-w>v | |
" bindings for easy split nav | |
nnoremap <C-h> <C-w>h | |
nnoremap <C-j> <C-w>j | |
nnoremap <C-k> <C-w>k | |
nnoremap <C-l> <C-w>l | |
" Use sane regex's when searching | |
nnoremap / /\v | |
vnoremap / /\v | |
" Clear match highlighting | |
noremap <leader><space> :noh<cr>:call clearmatches()<cr> | |
" Quick buffer switching - like cmd-tab'ing | |
nnoremap <leader><leader> <c-^> | |
" Visual line nav, not real line nav | |
" If you wrap lines, vim by default won't let you move down one line to the | |
" wrapped portion. This fixes that. | |
noremap j gj | |
noremap k gk | |
" Plugin settings: | |
" Below are some 'sane' (IMHO) defaults for a couple of the above plugins I | |
" referenced. | |
" Map the key for toggling comments with vim-commentary | |
nnoremap <leader>c <Plug>CommentaryLine | |
" Remap ctrlp to ctrl-t -- map it however you like, or stick with the | |
" defaults. Additionally, in my OS, I remap caps lock to control. I never use | |
" caps lock. This is highly recommended. | |
let g:ctrlp_map = '<c-t>' | |
" Let ctrlp have up to 30 results. | |
let g:ctrlp_max_height = 30 | |
" Finally the color scheme. Choose whichever you want from the list in the | |
" link above (back up where we included the bundle of a ton of themes.) | |
" colorscheme autumnleaf | |
set background=dark | |
colorscheme base16-eighties | |
" Always show the status line | |
set laststatus=2 | |
" airline / powerline fonts | |
let g:airline_powerline_fonts=1 | |
" Enable the list of buffers | |
let g:airline#extensions#tabline#enabled = 1 | |
" Show just the filename | |
let g:airline#extensions#tabline#fnamemod = ':t' | |
"Strictly necessary for Powerline | |
set encoding=utf-8 | |
"Set to whatever font you like. | |
set guifont=Hack:h12 | |
" syntastic defaults | |
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 | |
" line numbers! | |
function! NumberToggle() | |
if(&relativenumber == 1) | |
set norelativenumber | |
set number | |
else | |
set nonumber | |
set relativenumber | |
endif | |
endfunc | |
set relativenumber | |
nnoremap <C-n> :call NumberToggle()<cr> | |
" This allows buffers to be hidden if you've modified a buffer. | |
" This is almost a must if you wish to use buffers in this way. | |
set hidden | |
" To open a new empty buffer | |
" This replaces :tabnew which I used to bind to this mapping | |
nmap <leader>T :enew<cr> | |
" Move to the next buffer | |
nmap <leader>l :bnext<CR> | |
" Move to the previous buffer | |
nmap <leader>h :bprevious<CR> | |
" Close the current buffer and move to the previous one | |
" This replicates the idea of closing a tab | |
nmap <leader>bq :bp <BAR> bd #<CR> | |
" Show all open buffers and their status | |
nmap <leader>bl :ls<CR> | |
" Make backspace work like normal | |
set backspace=indent,eol,start |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment