Skip to content

Instantly share code, notes, and snippets.

@cszentkiralyi
Last active July 26, 2016 19:33
Show Gist options
  • Save cszentkiralyi/529fdfa6b774cadd0c1a to your computer and use it in GitHub Desktop.
Save cszentkiralyi/529fdfa6b774cadd0c1a to your computer and use it in GitHub Desktop.
execute pathogen#infect()
syntax on
filetype plugin indent on
set ffs=unix,dos
set nocompatible
set expandtab
set smarttab
set shiftwidth=2
set softtabstop=2
set shiftround
set wildmode=full
set wildmenu
set wildignorecase
set linebreak " Gives breakindent hints on appropriate word boundaries
set breakindent
"set breakindentopt=shift:4,sbr
set showbreak=>>>\
set formatoptions+=n " respect lists when indenting
set formatoptions+=j " smart comment joins
set scrolloff=2 " 2 line padding between top of screen and current line
set ignorecase
set smartcase " ignore case only when searching all lower-case
set incsearch
set encoding=utf-8
set diffexpr=
set number
set backspace=indent,eol,start
""""""""""""""
" Appearance "
""""""""""""""
"colorscheme tomorrow-night
"colorscheme base16-mocha
colorscheme base16-twilight
"set colorcolumn=+1
set textwidth=170
set foldmethod=manual
set foldlevelstart=99
set laststatus=2 " Force statusline to show up in all situations
let g:airline_left_sep='['
let g:airline_right_sep=']'
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#show_tab_nr = 0
let g:airline#extensions#tabline#show_tab_type = 1
let g:airline#extensions#tabline#formatter = 'unique_tail_improved'
set showtabline=0
let g:airline_section_a = airline#section#create(['mode', ' ', 'branch'])
set guitablabel=%m\ %.30f%R
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_javascript_checkers = ["eslint"]
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 0
let g:syntastic_check_on_wq = 0
let g:rainbow#max_level = 32 " Default is dumb, like 16 or something
let g:rainbow#pairs = [['(',')'], ['[',']'], ['{','}']] " Defaults to just ()
function! SelectiveRainbowParens()
if &ft =~ 'lisp\|clojure\|scheme'
RainbowParentheses
endif
endfunction
augroup rainbow_list
autocmd!
" autocmd FileType,Syntax lisp,clojure,scheme RainbowParentheses
autocmd FileType,Syntax * call SelectiveRainbowParens()
augroup END
"""""""""""""""
" GVim config "
"""""""""""""""
if has("gui_running")
set noshowmode
set cursorline
"set cursorcolumn
set guioptions-=T " no toolbar
"set lines=60 columns=100
"set guifont=Lucida_Console:h9:cANSI " Old size: h10
let g:airline_section_a = airline#section#create(['mode'])
set guifont=Hack:h9:cANSI
let g:airline_powerline_fonts = 1
let g:airline_left_sep=''
let g:airline_left_alt_sep=''
let g:airline_right_sep=''
let g:airline_right_alt_sep=''
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
let g:airline_symbols.branch = ''
let g:airline_symbols.readonly = ''
"let g:airline_symbols.linenr = ''
let g:airline_symbols.linenr = 'ln'
endif
""""""""""""""""""
" netrw Behavior "
""""""""""""""""""
"let g:netrw_browse_split = 4 " <Enter> opens a vsplit instead of using the same window
let g:netrw_preview = 1 " vertical preview
let g:netrw_winsize = 25 " 30% of the screen is netrw
let g:netrw_liststyle = 3 " tree
let g:netrw_banner = 0 " no banner
function! ToggleVExplore()
if exists("t:expl_buf_num")
let expl_win_num = bufwinnr(t:expl_buf_num)
if expl_win_num != -1
let cur_win_num = winnr()
exec expl_win_num . 'wincmd w'
close
exec cur_win_num . 'wincmd w'
unlet t:expl_buf_num
else
unlet t:expl_buf_num
endif
else
exec '1wincmd w'
Vexplore
let t:expl_buf_num = bufnr("%")
endif
endfunction
""""""""""""""""""""""""""""
" quick-scope modification "
""""""""""""""""""""""""""""
let g:qs_highlight_on_keys = [ 'f', 'F', 't', 'T' ]
"let g:qs_enable = 0
"let g:qs_enable_char_list = [ 'f', 'F', 't', 'T' ]
"function! Quick_scope_selective(movement)
" let needs_disabling = 0
" if !g:qs_enable
" QuickScopeToggle
" redraw
" let needs_disabling = 1
" endif
" let letter = nr2char(getchar())
" if needs_disabling
" QuickScopeToggle
" endif
" return a:movement . letter
"endfunction
"
""""""""""""""""
" CtrlP config "
""""""""""""""""
let g:ctrlp_map = '' " Unset, custom one below
"let g:ctrlp_user_command = 'dir %s /-n /b /s /a-d' " Windows
"let g:ctrlp_custom_ignore = '\v(node_modules|\.git|resources)$'
let g:ctrlp_custom_ignore = { 'dir': '\v(node_modules|\.git|resources)' }
""""""""""""""""""""""
" Speed improvements "
""""""""""""""""""""""
"set lazyredraw
let g:gitgutter_realtime = 0
""""""""""""
" Commands "
""""""""""""
command! XDev :lcd D:\src\xledger\
command! XWeb :lcd D:\src\xledger\X.Web
command! XWebPublic :lcd D:\src\xledger\X.Web\Public
command! XSrc :lcd D:\src\xledger\X.Web\Public\Scripts\Src
command! XSrc2 :lcd D:\src\xledger\X.Web\Public\Scripts\Src2
function! UseLightTheme(is_light)
if a:is_light == 1
"colorscheme base16-solarized
colorscheme base16-atelierforest
set background=light
else
colorscheme base16-twilight
set background=dark
endif
endfunction
command! -nargs=1 UseLightTheme :call UseLightTheme(<args>)
""""""""""""
" Mappings "
""""""""""""
"nnoremap <silent> <C-e> :call ToggleVExplore()<CR>
nnoremap <silent> <C-E> :Vexplore .<CR>
cnoremap <C-h> <Left>
cnoremap <C-j> <Down>
cnoremap <C-k> <Up>
cnoremap <C-l> <Right>
nnoremap <Space> <Nop>
" Font size changes using <C-Up>/<C-Down>
nnoremap <C-Up> :silent! let &guifont = substitute(
\ &guifont,
\ ':h\zs\d\+',
\ '\=eval(submatch(0)+1)',
\ '')<CR>
nnoremap <C-Down> :silent! let &guifont = substitute(
\ &guifont,
\ ':h\zs\d\+',
\ '\=eval(submatch(0)-1)',
\ '')<CR>
" quick_scope maps, operator-pending mode included (can do 'df' with hint)
"for i in g:qs_enable_char_list
" execute 'noremap <expr> <silent>' . i . " Quick_scope_selective('". i . "')"
"endfor
" Center the active line when switching windows
nnoremap <C-w>h <C-w>h
nnoremap <C-w>k <C-w>k
nnoremap <C-w>j <C-w>j
nnoremap <C-w>l <C-w>l
let mapleader=","
let maplocalleader=" "
nnoremap <silent> <leader>n :set relativenumber!<CR>
nnoremap <silent> <leader>h :set hls!<CR>
nnoremap <silent> <leader>r :RainbowParentheses!!<CR>
nnoremap <silent> <leader>ss :SyntasticCheck<CR>
nnoremap <silent> <leader>sr :SyntasticReset<CR>
nnoremap <silent> <leader>tn :tabn<CR>
nnoremap <silent> <leader>tp :tabp<CR>
nnoremap <silent> <leader>te :tabe<CR>
nnoremap <silent> <leader>f :CtrlP<CR>
nnoremap <silent> <leader>b :CtrlPBuffer<CR>
" I think Undotree is broken? Maybe lack of diff
" nnoremap <silent> <leader>u :UndotreeToggle<CR>
" Clojure commands
nnoremap <leader>cd yiw/\v(defn\-? <C-R>"\|<C-R>"[ \r\n]+("[^"]+"[ \r\n]+)?\(fn)/<CR>
nmap <leader>cc mdvaf<Esc>%mf%a<CR><Esc>'fi;; <Esc>'d
vnoremap <leader>cc I;; <Esc>
vnoremap <leader>cu 2lx<Esc>
" Om.next commands
nnoremap <leader>cod yiw?def <C-R>"<CR>/factory <CR>f lyiw?defui <C-R>"<CR>
" Javascript commands
nnoremap <leader>jc mcI//<Esc>`c:delmarks c<CR>
nnoremap <leader>ja mq:%s/^\(.*\)}, \(.*\): function\(.*\){/\1}, \2: function\3{\r\1 console.log("\2");/<CR>'q
nnoremap <leader>jd yiw/\v(<C-R>": func\|function <C-R>"\(\|<C-R>" = func)/<CR>
" Markdown commands
nnoremap <leader>m1 yyp:.s/./=/g<CR>
nnoremap <leader>m2 yyp:.s/./-/g<CR>
nnoremap <leader>m3 I### <Esc>
nnoremap <leader>m4 I#### <Esc>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment