Skip to content

Instantly share code, notes, and snippets.

@seanspradlin
Last active December 19, 2016 20:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save seanspradlin/58ab9fad4489722d9e8f1185db467448 to your computer and use it in GitHub Desktop.
Save seanspradlin/58ab9fad4489722d9e8f1185db467448 to your computer and use it in GitHub Desktop.
set -g utf8
set-window-option -g utf8 on
set -g default-terminal "screen-256color"
set -sg escape-time 1
set-option -g base-index 1
setw -g pane-base-index 1
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
bind | split-window -h
bind - split-window -v
bind x kill-pane
bind l resize-pane -R 10
bind k resize-pane -U 10
bind j resize-pane -D 10
bind h resize-pane -L 10
unbind '"'
unbind %
bind r source-file ~/.tmux.conf
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
set-option -g allow-rename off
set -g mouse on
source $HOME/tmux/tomorrow.tmux
" dependencies: python2, python2-dev, npm, eslint, tslint, ag, nerd-fonts, xclip
" junegunn/vim-plug is our plugin manager
call plug#begin('~/.vim/plugged')
" pretty colors
Plug 'flazz/vim-colorschemes'
" sensible defaults everyone can agree on
Plug 'tpope/vim-sensible'
" single plugin for all languages
Plug 'sheerun/vim-polyglot'
" show colors in css files
Plug 'ap/vim-css-color'
" make jsdoc comments easy to write
Plug 'heavenshell/vim-jsdoc'
" split and join lines (gJ, gS)
Plug 'AndrewRadev/splitjoin.vim'
" allow plugin actions to be repeated with .
Plug 'tpope/vim-repeat'
" make vim work great with typescript
Plug 'Shougo/vimproc.vim', {'do' : 'make'} | Plug 'Quramy/tsuquyomi'
" syntax checking
Plug 'scrooloose/syntastic' | Plug 'gcorne/vim-sass-lint'
Plug 'mtscout6/syntastic-local-eslint.vim'
" comment out a line with gcc
Plug 'tpope/vim-commentary'
" tag matching and closing in html
Plug 'Valloric/MatchTagAlways'
Plug 'alvan/vim-closetag'
" support for editor config
Plug 'editorconfig/editorconfig-vim'
" use git from vim
Plug 'tpope/vim-fugitive'
Plug 'airblade/vim-gitgutter'
" change surrounding tags
Plug 'tpope/vim-surround'
" pretty icons
Plug 'ryanoasis/vim-devicons'
" cool start screen
Plug 'mhinz/vim-startify'
" quick motion
Plug 'justinmk/vim-sneak'
" status bar
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'edkolev/tmuxline.vim'
" automatically add/remove closing bracket
Plug 'Raimondi/delimitMate'
" better mark management
Plug 'kshenoy/vim-signature'
" file hierarchy
Plug 'scrooloose/nerdtree'
" file search
Plug 'ctrlpvim/ctrlp.vim'
" semantic autocomplete
function! BuildYCM(info)
if a:info.status == 'installed' || a:info.force
!python2 ./install.py --tern-completer
endif
endfunction
" Plug 'Valloric/YouCompleteMe', {'do': function('BuildYCM')}
call plug#end()
" let mapleader = ","
" colorscheme Tomorrow-Night
colorscheme Tomorrow
let g:jsdoc_allow_input_prompt = 1
let g:jsdoc_input_description = 1
let g:jsdoc_additional_descriptions = 1
let g:jsdoc_access_descriptions = 2
let g:jsdoc_underscore_private = 1
let g:jsdoc_enable_es6 = 1
" let g:syntastic_javascript_checkers = ['eslint']
let g:syntastic_javascript_checkers = ['jshint']
" let g:syntastic_javascript_checkers = ['jshint', 'jscs']
let g:syntastic_typescript_checkers = ['tslint', 'tsuquyomi']
" let g:syntastic_typescript_tsc_fname = ''
let g:syntastic_sass_checkers=['sass_lint']
let g:syntastic_scss_checkers=['sass_lint']
let g:syntastic_aggregate_errors = 1
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:tsuquyomi_disable_quickfix = 1
" use local configuration for sass-lint
fun! SetScssConfig()
let scssConfig = findfile('.sass-lint.yml', '.;')
if scssConfig != ''
let b:syntastic_scss_sass_lint_args = '-v --config ' . scssConfig
endif
endf
autocmd FileType scss :call SetScssConfig()
autocmd FileType sass :call SetScssConfig()
" make editor config compatible with fugitive
let g:EditorConfig_exclude_patterns = ['fugitive://.*']
" dynamically color mark based on git gutter
let g:SignatureMarkTextHLDynamic = 1
" we use closetag for html files
let delimitMate_excluded_ft = 'html'
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#fnamemod = ":t"
let g:airline_powerline_fonts = 1
let g:airline_theme='tomorrow'
let delimitMate_expand_cr = 1
let delimitMate_expand_space = 1
" nnoremap <leader>d :YcmCompleter GetDoc<cr>
" nnoremap <leader>f :YcmCompleter GoToDefinition<cr>
" " trailing space on purpose
" nnoremap <leader>r :YcmCompleter RefactorRename
set iskeyword+=-
" airline shows mode
set noshowmode
" highlight matching bracket
set showmatch
set expandtab
set shiftwidth=2
set softtabstop=2
set relativenumber
" show trailing characters
set list
set copyindent
set preserveindent
" make copy/pasting work
vnoremap <C-c> "+y
vnoremap <C-v> "+p
nnoremap <C-v> "+p
" these directories need to exist, vim won't create them
" double // removes an issue with multiple files with the same name
set backup
set backupdir=~/.vim/backups//
set directory=~/.vim/tmp//
set backupcopy=yes
set foldmethod=syntax
set foldlevelstart=100
set showcmd
set gdefault
map N Nzz
map n nzz
set autochdir
" highlight current line
set cursorline
" hide buffers instead of asking to save them
set hidden
" search open window first when opening new buffer
set switchbuf=usetab
inoremap <Down> <C-o>gj
inoremap <Up> <C-o>gk
noremap <silent> <expr> j (v:count == 0 ? 'gj' : 'j')
noremap <silent> <expr> k (v:count == 0 ? 'gk' : 'k')
" report everything (eg. 3 lines yanked)
set report=0
set nostartofline
set hlsearch
set ignorecase
set smartcase
set nomodeline
set title
" we prefer vertical diffs
set diffopt+=vertical
vnoremap x "_x
vnoremap X "_X
nnoremap x "_x
nnoremap X "_X
" close location and quickfix windows
nnoremap <C-x> <C-w>z :lcl<CR> :ccl<CR>
" indent entire file
nnoremap <C-e> gg=G``zz
" copy entire file
nmap <leader>c gg^v<S-g>$<C-c>``
" nerd tree
map <C-n> :NERDTreeToggle<CR>
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
" enable mouse
set ttyfast
set mouse=a
set ttymouse=xterm2
" ignore directories for ctrlp
let g:ctrlp_custom_ignore = 'node_modules\|DS_Store\|git'
" Split configs
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>
" buffer keys
nmap <leader>, :bprevious<CR>
nmap <leader>. :bnext<CR>
nmap <leader>q :bp <BAR> bd #<CR>
set splitbelow
set splitright
set backspace=indent,eol,start
## set status bar
set -g status-bg "#373b41"
set -g status-fg "#c5c8c6"
## highlight active window
setw -g window-status-current-bg "#282a2e"
setw -g window-status-current-fg "#81a2be"
## highlight activity in status bar
setw -g window-status-activity-fg "#8abeb7"
setw -g window-status-activity-bg "#1d1f21"
## pane border and colors
set -g pane-active-border-bg default
set -g pane-active-border-fg "#373b41"
set -g pane-border-bg default
set -g pane-border-fg "#373b41"
set -g clock-mode-colour "#81a2be"
set -g clock-mode-style 24
set -g message-bg "#8abeb7"
set -g message-fg "#000000"
set -g message-command-bg "#8abeb7"
set -g message-command-fg "#000000"
set -g mode-bg "#8abeb7"
set -g mode-fg "#000000"
## set status bar
set -g status-bg "#d6d6d6"
set -g status-fg "#4d4d4c"
## highlight active window
setw -g window-status-current-bg "#8e908c"
setw -g window-status-current-fg "#d6d6d6"
## highlight activity in status bar
setw -g window-status-activity-fg "#3e999f"
setw -g window-status-activity-bg "#4d4d4c"
## pane border and colors
set -g pane-active-border-bg default
set -g pane-active-border-fg "#8e908c"
set -g pane-border-bg default
set -g pane-border-fg "#d6d6d6"
set -g clock-mode-colour "#3e999f"
set -g clock-mode-style 24
set -g message-bg "#3e999f"
set -g message-fg "#ffffff"
set -g message-command-bg "#3e999f"
set -g message-command-fg "#ffffff"
set -g mode-bg "#3e999f"
set -g mode-fg "#ffffff"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment