├── .vscode └── settings.json ├── dots ├── bundle │ └── config ├── psqlrc ├── gemrc ├── gitignore ├── bash_profile ├── inputrc ├── gitconfig ├── bashrc └── vimrc ├── Makefile ├── bin ├── update ├── uninstall ├── help └── install ├── Readme.md └── themes └── polarized.dvtcolortheme /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.fontFamily": "Fira Code" 3 | } -------------------------------------------------------------------------------- /dots/bundle/config: -------------------------------------------------------------------------------- 1 | --- 2 | BUNDLE_PATH: vendor/bundle 3 | BUNDLE_BINSTUBS: .bin 4 | -------------------------------------------------------------------------------- /dots/psqlrc: -------------------------------------------------------------------------------- 1 | \pset linestyle unicode 2 | \pset border 2 3 | \pset expanded auto 4 | -------------------------------------------------------------------------------- /dots/gemrc: -------------------------------------------------------------------------------- 1 | --- 2 | :backtrace: false 3 | :bulk_threshold: 1000 4 | :sources: 5 | - http://rubygems.org 6 | - https://rubygems.org 7 | :update_sources: true 8 | :verbose: true 9 | benchmark: false 10 | gem: "--no-ri --no-rdoc" 11 | -------------------------------------------------------------------------------- /dots/gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | *.map 3 | *.swp 4 | .DS_Store 5 | .bundle/ 6 | .env 7 | .idea 8 | .powenv 9 | .rake_cache 10 | .sass-cache 11 | .svn 12 | log/* 13 | log/**/* 14 | node_modules 15 | tmp/* 16 | tmp/**/* 17 | typescript 18 | vendor/bundle 19 | -------------------------------------------------------------------------------- /dots/bash_profile: -------------------------------------------------------------------------------- 1 | if [[ -f $HOME/.bashrc ]]; then source $HOME/.bashrc; fi 2 | if [[ -f $HOME/.bashrc.local ]]; then source $HOME/.bashrc.local; fi 3 | eval "$(rbenv init -)" 4 | test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash" 5 | 6 | export PATH="$HOME/.fastlane/bin:$PATH" 7 | 8 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | #/ help List all bin commands and make targets 2 | help: 3 | @./bin/help world makefile 4 | 5 | #/ install Runs all of the install commands 6 | install: 7 | @./bin/install world 8 | 9 | #/ update Runs all of the update commands 10 | update: 11 | @./bin/update world 12 | 13 | #/ uninstall Remove all the crap that was installed 14 | uninstall: 15 | @./bin/uninstall world 16 | 17 | .PHONY: help install update uninstall 18 | 19 | -------------------------------------------------------------------------------- /dots/inputrc: -------------------------------------------------------------------------------- 1 | # http://ss64.com/bash/syntax-inputrc.html 2 | set expand-tilde on 3 | set history-preserve-point on 4 | set mark-symlinked-directories on 5 | set skip-completed-text on 6 | set match-hidden-files off 7 | set page-completions off 8 | set completion-query-items 1000 9 | set completion-ignore-case on 10 | set completion-prefix-display-length 10 11 | 12 | C-n: history-search-forward 13 | C-p: history-search-backward 14 | 15 | # For immediate completion feedback rock these 16 | # set show-all-if-ambiguous on 17 | # set show-all-if-unmodified on 18 | 19 | -------------------------------------------------------------------------------- /bin/update: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | init() { 5 | $([[ $1 == "" ]] && echo ./bin/help update || echo run $@) 6 | printf "%s\nupdate complete.\n" 7 | exit 0 8 | } 9 | 10 | run() { 11 | for cmd in $@; do $cmd; done 12 | } 13 | 14 | #/ vim Message instructions to update the Vim plugins 15 | vim() { 16 | printf "%s-----------------------------------\n" 17 | printf "%sUpdate Vim plugins:\n" 18 | printf "%sPlugUpgrade, PlugUpdate, PlugClean!\n" 19 | printf "%s-----------------------------------\n" 20 | } 21 | 22 | #/ world Runs all of the update commands 23 | world() { 24 | vim 25 | } 26 | 27 | # go.. 28 | init $@ 29 | 30 | -------------------------------------------------------------------------------- /dots/gitconfig: -------------------------------------------------------------------------------- 1 | [color] 2 | diff = auto 3 | status = auto 4 | branch = auto 5 | ui = auto 6 | [core] 7 | excludesfile = ~/.gitignore 8 | trustctime = false 9 | [alias] 10 | c = commit -a 11 | a = add 12 | di = diff 13 | dic = diff --cached 14 | pl = pull 15 | ps = push 16 | pr = pull --rebase 17 | st = status 18 | out = log origin..HEAD 19 | br = branch 20 | co = checkout 21 | del = !FILES=$(git ls-files --deleted) && git rm $FILES 22 | empty = commit --allow-empty -m 23 | glog = log --pretty='format:%d %Cgreen%h%Creset %an - %s' --graph 24 | clog = log --pretty='- [x] %h %s' 25 | [help] 26 | autocorrect = 1 27 | [push] 28 | default = matching 29 | [branch] 30 | autosetupmerge = always 31 | autosetuprebase = always 32 | [merge] 33 | tool = opendiff 34 | trustExitCode = 0 35 | 36 | [mergetool "opendiff"] 37 | 38 | [rerere] 39 | enabled = 1 40 | [filter "media"] 41 | required = true 42 | clean = git media clean %f 43 | smudge = git media smudge %f 44 | 45 | [interactive] 46 | diffFilter = diff-highlight 47 | [include] 48 | path = ~/.gitconfig.local 49 | 50 | [gpg] 51 | program = /usr/local/bin/gpg 52 | -------------------------------------------------------------------------------- /bin/uninstall: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | init() { 5 | $([[ $1 == "" ]] && echo ./bin/help uninstall || echo run $@) 6 | printf "%s\nuninstall complete.\n" 7 | exit 0 8 | } 9 | 10 | run() { 11 | for cmd in $@; do $cmd; done 12 | } 13 | 14 | #/ vim Removes .vimrc, .vim/ 15 | vim() { 16 | rm -v $HOME/.vimrc 17 | rm -rfv $HOME/.vim 18 | } 19 | 20 | #/ bash Removes .bash_profile, .bashrc and .inputrc 21 | bash() { 22 | for file in "bash_profile" "bashrc" "inputrc"; do 23 | rm -v $HOME/.$file 24 | done 25 | } 26 | 27 | #/ psql Removes .psqlrc 28 | bash() { 29 | for file in "psqlrc"; do 30 | rm -v $HOME/.$file 31 | done 32 | } 33 | 34 | #/ dots Removes ~/ .gemrc .gitconfig .gitignore .bundle/ 35 | dots() { 36 | rm -rfv $HOME/.bundle 37 | for file in "gemrc" "gitconfig" "gitignore"; do 38 | rm -v $HOME/.$file 39 | done 40 | } 41 | 42 | #/ xcode Uninstalls custom Xcode files 43 | xcode() { 44 | rm -rfv $HOME/Library/Developer/Xcode/UserData/FontAndColorThemes 45 | } 46 | 47 | #/ world Runs all of the uninstall commands 48 | world() { 49 | vim 50 | dots 51 | bash 52 | xcode 53 | } 54 | 55 | # go.. 56 | init $@ 57 | 58 | -------------------------------------------------------------------------------- /bin/help: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | init() { 5 | $([[ $1 == "" ]] && echo world || echo run $@) 6 | exit 0 7 | } 8 | 9 | run() { 10 | for cmd in $@; do $cmd; done 11 | } 12 | 13 | #/ install List commands for the install program 14 | install() { 15 | print_usage "install" 16 | } 17 | 18 | #/ uninstall List commands for the uninstall program 19 | uninstall() { 20 | print_usage "uninstall" 21 | } 22 | 23 | #/ update List commands for the update program 24 | update() { 25 | print_usage "update" 26 | } 27 | 28 | #/ help List commands for the help program 29 | help() { 30 | print_usage "help" 31 | } 32 | 33 | #/ world List each command in all programs 34 | world() { 35 | install 36 | uninstall 37 | update 38 | help 39 | } 40 | 41 | makefile() { 42 | printf "%sUsage: make TARGET\n" 43 | cat ./Makefile | grep '^#\/' | sed "s/#\///g" | while read line; do 44 | printf "%2s$line\n" 45 | done 46 | printf "%s\n" 47 | } 48 | 49 | print_usage() { 50 | for program in $@; do 51 | printf "%sUsage: bin/$program COMMAND\n" 52 | cat ./bin/$program | grep '^#\/' | sed "s/#\///g" | while read line; do 53 | printf "%2s$line\n" 54 | done 55 | printf "%s\n" 56 | done 57 | } 58 | 59 | # go.. 60 | init $@ 61 | 62 | -------------------------------------------------------------------------------- /bin/install: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | init() { 5 | $([[ $1 == "" ]] && echo ./bin/help install || echo run $@) 6 | exit 0 7 | } 8 | 9 | run() { 10 | for cmd in $@; do $cmd; done 11 | } 12 | 13 | #/ vim Installs .vimrc, .vim/ and vim-plug 14 | vim() { 15 | printf "%sInstalling vimfiles..\n" 16 | if [[ -d $HOME/.vim ]]; then rm -rf $HOME/.vim; fi 17 | for dir in "tmp/ctrlp" "tmp/swap" "tmp/yankring"; do 18 | mkdir -pv $HOME/.vim/$dir 19 | done 20 | curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ 21 | https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim 22 | ln -sfv "`pwd`/dots/vimrc" $HOME/.vimrc 23 | printf "%s----------------------------------------\n" 24 | printf "%sRun PlugInstall from within Vim\n" 25 | printf "%s----------------------------------------\n" 26 | } 27 | 28 | #/ bash Installs .bash_profile, .bashrc and .inputrc 29 | bash() { 30 | for file in "bash_profile" "bashrc" "inputrc"; do 31 | ln -sfv "`pwd`/dots/$file" $HOME/.$file 32 | done 33 | } 34 | 35 | #/ psql Installs .bash_profile, .bashrc and .inputrc 36 | psql() { 37 | for file in "psqlrc"; do 38 | ln -sfv "`pwd`/dots/$file" $HOME/.$file 39 | done 40 | } 41 | 42 | #/ dots Installs ~/ .gemrc .gitconfig .gitignore .bundle/ 43 | dots() { 44 | if [[ ! -d $HOME/.bundle ]]; then mkdir $HOME/.bundle;fi 45 | ln -sfv "`pwd`/dots/bundle/config" $HOME/.bundle/config 46 | for file in "gemrc" "gitconfig" "gitignore"; do 47 | ln -sfv "`pwd`/dots/$file" $HOME/.$file 48 | done 49 | } 50 | 51 | #/ xcode Installs custom Xcode files 52 | xcode() { 53 | mkdir -pv ~/Library/Developer/Xcode/UserData/FontAndColorThemes 54 | ln -sfv "`pwd`/themes/polarized.dvtcolortheme" $HOME/Library/Developer/Xcode/UserData/FontAndColorThemes/polarized.dvtcolortheme 55 | } 56 | 57 | #/ world Runs all of the install commands 58 | world() { 59 | bash 60 | dots 61 | vim 62 | xcode 63 | psql 64 | } 65 | 66 | # go.. 67 | init $@ 68 | 69 | -------------------------------------------------------------------------------- /dots/bashrc: -------------------------------------------------------------------------------- 1 | eval "$(rbenv init -)" 2 | eval "$(exenv init -)" 3 | 4 | # Environment pathing and editor defaults 5 | export PATH="/usr/local/bin:/usr/local/heroku/bin:$PATH" 6 | export ARCHFLAGS="-arch i386 -arch x86_64" 7 | export HISTCONTROL=ignoreboth 8 | export HISTFILESIZE=10000 9 | export HISTSIZE=10000 10 | unset MAILCHECK 11 | 12 | # Add some color to man pages 13 | export LESS_TERMCAP_md="$(tput setaf 4)" 14 | 15 | # Without comment 16 | export EDITOR=vim 17 | 18 | # Use MacVim's version of the Vim executable instead of the systems 19 | if [ -e /usr/local/bin/brew ]; then 20 | export MACVIM_BASE=`brew --cellar macvim` 21 | export MACVIM_VERSION=`brew list --versions macvim | cut -d ' ' -f 2` 22 | alias vim="$MACVIM_BASE/$MACVIM_VERSION/MacVim.app/Contents/MacOS/Vim" 23 | export EDITOR="$MACVIM_BASE/$MACVIM_VERSION/MacVim.app/Contents/MacOS/Vim" 24 | fi 25 | 26 | # http://ss64.com/bash/shopt.html 27 | shopt -s histappend 28 | shopt -s nocaseglob 29 | shopt -s cdspell 30 | 31 | # Prompts 32 | # ------------------------------------------ 33 | 34 | # Color settings 35 | export TERM=xterm-color 36 | export GREP_OPTIONS='--color=auto' GREP_COLOR='0;36' 37 | export CLICOLOR=1 38 | 39 | # Color | Escaped | ANSI 40 | # -------------- | ---------- | ------------ 41 | # No Color | \033[0m | x (default foreground) 42 | # Black | \033[0;30m | a 43 | # Grey | \033[1;30m | A 44 | # Red | \033[0;31m | b 45 | # Bright Red | \033[1;31m | B 46 | # Green | \033[0;32m | c 47 | # Bright Green | \033[1;32m | C 48 | # Brown | \033[0;33m | d 49 | # Yellow | \033[1;33m | D 50 | # Blue | \033[0;34m | e 51 | # Bright Blue | \033[1;34m | E 52 | # Magenta | \033[0;35m | f 53 | # Bright Magenta | \033[1;35m | F 54 | # Cyan | \033[0;36m | g 55 | # Bright Cyan | \033[1;36m | G 56 | # Bright Grey | \033[0;37m | h 57 | # White | \033[1;37m | H 58 | 59 | # The order of the attributes are as follows (fgbg): 60 | # 01. directory 61 | # 02. symbolic link 62 | # 03. socket 63 | # 04. pipe 64 | # 05. executable 65 | # 06. block special 66 | # 07. character special 67 | # 08. executable with setuid bit set 68 | # 09. executable with setgid bit set 69 | # 10. directory writable to others, with sticky bit 70 | # 11. directory writable to others, without sticky bit 71 | # LSCOLORS=0102030405060708091011 72 | export LSCOLORS=excxgxfxbxdxbxbxbxexex 73 | 74 | parse_git_branch() { 75 | __git_ps1 " [%s]" 76 | } 77 | 78 | parse_versions() { 79 | echo " [rb:$(rbenv version-name)|ex:$(exenv version-name)]" 80 | } 81 | 82 | settitle() { 83 | echo -n -e "\033]0;$*\007" 84 | } 85 | 86 | export GIT_PS1_SHOWDIRTYSTATE='true' 87 | export PS1="\[\033[35m\][\h\[\033[00m\]\[\033[35m\]] \[\033[34m\]\W\[\033[32m\]\$(parse_versions)\[\033[31m\]\$(parse_git_branch)\[\033[00m\] \[\033[0m\]" 88 | export PS2="\[\033[35m\]→ \[\033[0m\]" 89 | 90 | # Aliases 91 | # ------------------------------------------ 92 | 93 | # Map git commands through hub 94 | if [ -e /usr/local/bin/hub ]; then 95 | alias git=hub 96 | fi 97 | 98 | # Handy stuff 99 | alias reload="source ~/.bash_profile && cd ../ && cd -" 100 | alias cp='cp -i' 101 | alias mv='mv -i' 102 | alias ls='ls -G' 103 | alias la='ls -lA' 104 | alias ll='ls -l' 105 | alias las='ls -lAS' 106 | alias hi='history | tail -50' 107 | alias be='bundle exec' 108 | alias ..="cd ../" 109 | 110 | alias git-prune='git remote | xargs -n1 git remote prune' 111 | 112 | # Completions 113 | # ------------------------------------------ 114 | 115 | if [ -f `brew --prefix`/etc/bash_completion ]; then 116 | . `brew --prefix`/etc/bash_completion 117 | fi 118 | 119 | # ps_1 was moved so source this file instead 120 | if [ -f /usr/local/share/git-core/contrib/completion/git-prompt.sh ]; then 121 | source /usr/local/share/git-core/contrib/completion/git-prompt.sh 122 | fi 123 | 124 | 125 | # Only print if we're in an interactive shell. 126 | # Non-interactive stuff like rsync will blow up otherwise 127 | if [[ "$-" == *"i"* ]]; then 128 | echo -e "\033[0;35m------------------------------------------\033[0m" 129 | fi 130 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | ![ello](https://avatars3.githubusercontent.com/u/13344279?v=3&s=120 "ello") 2 | 3 | We ♥ the Vim. 4 | 5 | ## Fresh install 6 | **Warning this will blow away any vim/bash setups you have currently. You may 7 | want to back up existing files.** 8 | 9 | - Xcode should be installed on your system from the App Store 10 | - Install Xcode command line tools by running `xcode-select --install` in a terminal window 11 | - Install Homebrew if you don't already by running `ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"` in a terminal window 12 | - Make sure you have git installed by running `brew install git` in a terminal window 13 | - Make sure you have ripgrep installed by running `brew install ripgrep` in a terminal window 14 | - In a terminal window cd to the dotfiles directory and run `bin/install world` 15 | - A helpful way to reload the terminal once the dotfiles are installed and terminal has been relaunched is to run our alias `reload` in a terminal window (this only effects reloading of the current window not all terminal windows) 16 | - Set reasonable [OSX defaults][osxdefaults] 17 | - Ruby (optional; if you want to use the built-in [Rbenv](https://github.com/rbenv/rbenv) support): `brew install rbenv ruby-build` 18 | - Elixir (optional; if you want to use the built-in [Exenv](https://github.com/mururu/exenv) support): `brew install exenv elixir-build` 19 | 20 | ## Settings 21 | 22 | ### Rock a sweet Bash setup 23 | 24 | The Bash setup is fairly bare bones out of the box. To override or add 25 | any additional settings create a `~/.bashrc.local` file and add 26 | any customization. 27 | 28 | The default Bash settings support the [rbenv][rbenv] environment. 29 | 30 | ### Git credentials 31 | To setup your git credentials correctly you'll need to add a `.gitconfig.local` 32 | file to your `$HOME` directory and add the following: 33 | 34 | ``` 35 | [user] 36 | name = YOUR_GIT_AUTHOR_NAME 37 | email = YOUR_GIT_AUTHOR_EMAIL 38 | [github] 39 | user = YOUR_GITHUB_USERNAME 40 | ``` 41 | 42 | ### Override Vim settings 43 | 44 | To override or add any additional settings create a `~/.vimrc.local` file and 45 | add any customization. 46 | 47 | Vim is setup with [vim-plug][vim-plug] as it's plugin manager. The default 48 | plugins are enabled within the [.vimrc][vimrc] file. To load localized plugins 49 | add them to a `~/.vimrc.bundles` file. 50 | 51 | To install the plugins open up vim by running `vim` in a terminal window and 52 | then typing `:PlugInstall`. If you get an error while opening up vim about not 53 | being able to find `colorscheme pigment` that's ok as the `:PlugInstall` will 54 | fix this for the next time you launch vim. 55 | 56 | ## Tips 57 | 58 | ### GPG (Optional) 59 | 60 | You will need to install GPG Keychain for GPG signing to happen automatically. 61 | See [GPG Tools](https://gpgtools.org/) for more information. There are ways to 62 | do this through homebrew, but the setup is a bit much. To obtain your GPG 63 | signing key you can either open up GPG Keychain, or run `gpg --list-keys` and 64 | add this to the `GIT_SIGNING_KEY` in your `.bashrc.local` file. 65 | 66 | You will also need to make your GPG signing key the primary one. You can do this 67 | by opening up GPG Keychain and doing these steps: 68 | 69 | - select your key 70 | - hit the details button 71 | - select User IDs from the menu 72 | - right click on your user id and select primary 73 | - select 'save to keychain' when the dialog pops up 74 | - and add this to your .gitconfig.local: 75 | 76 | ``` 77 | [user] 78 | signingKey = YOUR_GIT_SIGNING_KEY 79 | [commit] 80 | gpgsign = true 81 | [gpg] 82 | program = /usr/local/bin/gpg 83 | ``` 84 | 85 | ### Install Polarized terminal themes 86 | 87 | Included in the vimrc is `Plug mkitt/pigment`. This is the color settings for 88 | Vim. Any color profile should work with this theme including the defaults from 89 | Apple. Included from the [pigment][pigment] repository is the Polarized light 90 | and dark profiles. Import these profiles into Apple's Terminal.app and set one 91 | as the default. They should be found in: 92 | 93 | ``` 94 | ~/.vim/plugged/pigment/profiles/ 95 | ``` 96 | 97 | ### Turn caps lock into the control key 98 | 99 | The control key is in an awkward position and the caps lock key is 100 | basically useless. It's right there in the home row, so you might as 101 | well put it to good use. 102 | 103 | 1. Open up System Preferences 104 | - Select `Keyboard` 105 | - Select `Modifier Keys` 106 | - From the drop down, select `^ Control` under the `Caps Lock` setting 107 | - In the `Select Keyboard` drop down, set it for both internal and external keyboards 108 | 109 | ### Mouse support for Terminal 110 | 111 | To get full mouse support (scrolling, clicking, etc...) within Terminal 112 | Vim, install the [SIMBL][simbl] [MouseTerm][mouseterm] plug-in. 113 | 114 | 115 | 116 | [mouseterm]: https://bitheap.org/mouseterm/ 117 | [osxdefaults]: http://mths.be/osx 118 | [rbenv]: https://github.com/rbenv/rbenv 119 | [simbl]: http://www.culater.net/software/SIMBL/SIMBL.php 120 | [vim-plug]: https://github.com/junegunn/vim-plug 121 | [pigment]: https://github.com/mkitt/pigment 122 | [vimrc]: /dots/vimrc 123 | 124 | -------------------------------------------------------------------------------- /themes/polarized.dvtcolortheme: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | DVTConsoleDebuggerInputTextColor 6 | 0.437649 0.509511 0.517715 1 7 | DVTConsoleDebuggerInputTextFont 8 | Menlo-Bold - 11.0 9 | DVTConsoleDebuggerOutputTextColor 10 | 0.437649 0.509511 0.517715 1 11 | DVTConsoleDebuggerOutputTextFont 12 | Menlo-Regular - 11.0 13 | DVTConsoleDebuggerPromptTextColor 14 | 0.317071 0.437736 1 1 15 | DVTConsoleDebuggerPromptTextFont 16 | Menlo-Bold - 11.0 17 | DVTConsoleExectuableInputTextColor 18 | 0.437649 0.509511 0.517715 1 19 | DVTConsoleExectuableInputTextFont 20 | Menlo-Regular - 11.0 21 | DVTConsoleExectuableOutputTextColor 22 | 0.437649 0.509511 0.517715 1 23 | DVTConsoleExectuableOutputTextFont 24 | Menlo-Bold - 11.0 25 | DVTConsoleTextBackgroundColor 26 | 0.0980392 0.0980392 0.0980392 1 27 | DVTConsoleTextInsertionPointColor 28 | 0.905714 0.905714 0.905714 1 29 | DVTConsoleTextSelectionColor 30 | 0.32076 0.406575 0.440224 0.45 31 | DVTDebuggerInstructionPointerColor 32 | 0.653506 0.472476 0 1 33 | DVTMarkupTextBackgroundColor 34 | 0.08 0.195451 0.23153 1 35 | DVTMarkupTextBorderColor 36 | 0.1536 0.259815 0.293007 1 37 | DVTMarkupTextCodeFont 38 | Menlo-Regular - 10.0 39 | DVTMarkupTextEmphasisColor 40 | 0.513725 0.580392 0.588235 1 41 | DVTMarkupTextEmphasisFont 42 | .AppleSystemUIFontItalic - 10.0 43 | DVTMarkupTextLinkColor 44 | 1 0.501961 1 1 45 | DVTMarkupTextLinkFont 46 | .AppleSystemUIFont - 10.0 47 | DVTMarkupTextNormalColor 48 | 0.513725 0.580392 0.588235 1 49 | DVTMarkupTextNormalFont 50 | .AppleSystemUIFont - 10.0 51 | DVTMarkupTextOtherHeadingColor 52 | 0.513725 0.580392 0.588235 0.5 53 | DVTMarkupTextOtherHeadingFont 54 | .AppleSystemUIFont - 14.0 55 | DVTMarkupTextPrimaryHeadingColor 56 | 0.513725 0.580392 0.588235 1 57 | DVTMarkupTextPrimaryHeadingFont 58 | .AppleSystemUIFont - 24.0 59 | DVTMarkupTextSecondaryHeadingColor 60 | 0.513725 0.580392 0.588235 1 61 | DVTMarkupTextSecondaryHeadingFont 62 | .AppleSystemUIFont - 18.0 63 | DVTMarkupTextStrongColor 64 | 0.513725 0.580392 0.588235 1 65 | DVTMarkupTextStrongFont 66 | .AppleSystemUIFontBold - 10.0 67 | DVTSourceTextBackground 68 | 0 0.12549 0.164706 1 69 | DVTSourceTextBlockDimBackgroundColor 70 | 0.5 0.5 0.5 1 71 | DVTSourceTextInsertionPointColor 72 | 0.827451 0.211765 0.509804 1 73 | DVTSourceTextInvisiblesColor 74 | 0.827451 0 0.00784314 1 75 | DVTSourceTextSelectionColor 76 | 0.0196078 0.211765 0.254902 1 77 | DVTSourceTextSyntaxColors 78 | 79 | xcode.syntax.attribute 80 | 1 0.501961 1 1 81 | xcode.syntax.character 82 | 0.521569 0.6 0 1 83 | xcode.syntax.comment 84 | 0.423529 0.439216 0.768627 1 85 | xcode.syntax.comment.doc 86 | 0.423529 0.439216 0.768627 1 87 | xcode.syntax.comment.doc.keyword 88 | 0.423529 0.439216 0.768627 1 89 | xcode.syntax.identifier.class 90 | 0.827451 0.211765 0.509804 1 91 | xcode.syntax.identifier.class.system 92 | 0.827451 0.211765 0.509804 1 93 | xcode.syntax.identifier.constant 94 | 0.164706 0.631373 0.596078 1 95 | xcode.syntax.identifier.constant.system 96 | 0.164706 0.631373 0.596078 1 97 | xcode.syntax.identifier.function 98 | 0.796078 0.294118 0.0862745 1 99 | xcode.syntax.identifier.function.system 100 | 0.796078 0.294118 0.0862745 1 101 | xcode.syntax.identifier.macro 102 | 0.709804 0.537255 0 1 103 | xcode.syntax.identifier.macro.system 104 | 0.709804 0.537255 0 1 105 | xcode.syntax.identifier.type 106 | 0.827451 0.211765 0.509804 1 107 | xcode.syntax.identifier.type.system 108 | 0.827451 0.211765 0.509804 1 109 | xcode.syntax.identifier.variable 110 | 0.164706 0.631373 0.596078 1 111 | xcode.syntax.identifier.variable.system 112 | 0.164706 0.631373 0.596078 1 113 | xcode.syntax.keyword 114 | 0.14902 0.545098 0.823529 1 115 | xcode.syntax.number 116 | 0.164706 0.631373 0.596078 1 117 | xcode.syntax.plain 118 | 0.513725 0.580392 0.588235 1 119 | xcode.syntax.preprocessor 120 | 0.709804 0.537255 0 1 121 | xcode.syntax.string 122 | 0.521569 0.6 0 1 123 | xcode.syntax.url 124 | 1 0.501961 1 1 125 | 126 | DVTSourceTextSyntaxFonts 127 | 128 | xcode.syntax.attribute 129 | Menlo-Regular - 12.0 130 | xcode.syntax.character 131 | Menlo-Regular - 12.0 132 | xcode.syntax.comment 133 | Menlo-Regular - 12.0 134 | xcode.syntax.comment.doc 135 | Menlo-Regular - 12.0 136 | xcode.syntax.comment.doc.keyword 137 | Menlo-Regular - 12.0 138 | xcode.syntax.identifier.class 139 | Menlo-Regular - 12.0 140 | xcode.syntax.identifier.class.system 141 | Menlo-Regular - 12.0 142 | xcode.syntax.identifier.constant 143 | Menlo-Regular - 12.0 144 | xcode.syntax.identifier.constant.system 145 | Menlo-Regular - 12.0 146 | xcode.syntax.identifier.function 147 | Menlo-Regular - 12.0 148 | xcode.syntax.identifier.function.system 149 | Menlo-Regular - 12.0 150 | xcode.syntax.identifier.macro 151 | Menlo-Regular - 12.0 152 | xcode.syntax.identifier.macro.system 153 | Menlo-Regular - 12.0 154 | xcode.syntax.identifier.type 155 | Menlo-Regular - 12.0 156 | xcode.syntax.identifier.type.system 157 | Menlo-Regular - 12.0 158 | xcode.syntax.identifier.variable 159 | Menlo-Regular - 12.0 160 | xcode.syntax.identifier.variable.system 161 | Menlo-Regular - 12.0 162 | xcode.syntax.keyword 163 | Menlo-Regular - 12.0 164 | xcode.syntax.number 165 | Menlo-Regular - 12.0 166 | xcode.syntax.plain 167 | Menlo-Regular - 12.0 168 | xcode.syntax.preprocessor 169 | Menlo-Regular - 12.0 170 | xcode.syntax.string 171 | Menlo-Regular - 12.0 172 | xcode.syntax.url 173 | Menlo-Regular - 12.0 174 | 175 | 176 | 177 | -------------------------------------------------------------------------------- /dots/vimrc: -------------------------------------------------------------------------------- 1 | " Disable vi compatibility 2 | set nocompatible 3 | 4 | " Plugins 5 | " ----------------------------------------------------------------------------- 6 | call plug#begin('~/.vim/plugged') 7 | 8 | " Editor 9 | Plug 'ctrlpvim/ctrlp.vim' 10 | Plug 'dyng/ctrlsf.vim' 11 | Plug 'ervandew/supertab' 12 | Plug 'henrik/vim-indexed-search' 13 | Plug 'mhinz/vim-grepper' 14 | Plug 'mhinz/vim-startify' 15 | Plug 'mkitt/pigment' 16 | Plug 'mkitt/tabline.vim' 17 | Plug 'nelstrom/vim-visual-star-search' 18 | Plug 'scrooloose/nerdtree' 19 | Plug 'terryma/vim-multiple-cursors' 20 | Plug 'ton/vim-bufsurf' 21 | Plug 'vim-scripts/YankRing.vim' 22 | Plug 'w0rp/ale' 23 | Plug 'yssl/QFEnter' 24 | 25 | " Editing 26 | Plug 'tpope/vim-commentary' 27 | Plug 'tpope/vim-repeat' 28 | Plug 'tpope/vim-surround' 29 | Plug 'tpope/vim-unimpaired' 30 | 31 | " Filetypes 32 | Plug 'derekwyatt/vim-scala' 33 | Plug 'elixir-lang/vim-elixir' 34 | Plug 'fatih/vim-go' 35 | Plug 'hashivim/vim-terraform' 36 | Plug 'jparise/vim-graphql' 37 | Plug 'kchmck/vim-coffee-script' 38 | Plug 'keith/swift.vim' 39 | Plug 'leafgarland/typescript-vim' 40 | Plug 'mxw/vim-jsx' 41 | Plug 'othree/html5.vim' 42 | Plug 'pangloss/vim-javascript' 43 | Plug 'peitalin/vim-jsx-typescript' 44 | Plug 'tpope/vim-haml' 45 | Plug 'tpope/vim-rails' 46 | 47 | " Utility 48 | Plug 'ngmy/vim-rubocop' 49 | Plug 'tpope/vim-fugitive' 50 | Plug 'tpope/vim-rhubarb' 51 | 52 | " Add local bundles 53 | if filereadable(expand("~/.vimrc.bundles")) 54 | source ~/.vimrc.bundles 55 | endif 56 | 57 | call plug#end() 58 | 59 | runtime! macros/matchit.vim 60 | filetype plugin indent on 61 | syntax enable 62 | 63 | " Preferences 64 | " ----------------------------------------------------------------------------- 65 | set autoindent 66 | set autoread 67 | set autowrite 68 | set backspace=2 69 | set clipboard=unnamed 70 | set complete-=i 71 | set completeopt=longest,menu 72 | set directory=~/.vim/tmp/swap/ 73 | set display+=lastline 74 | set expandtab 75 | set hidden 76 | set history=1000 77 | set hlsearch 78 | set ignorecase 79 | set incsearch 80 | set laststatus=2 81 | set list 82 | set listchars=tab:▸\ ,eol:¬,trail:· 83 | set mouse=a 84 | set nobackup 85 | set nojoinspaces 86 | set noshowcmd 87 | set nostartofline 88 | set nowrap 89 | set nrformats-=octal 90 | set number 91 | set ruler 92 | set scrolloff=3 93 | set sessionoptions-=options 94 | set shiftround 95 | set shiftwidth=2 96 | set showmatch 97 | set sidescrolloff=3 98 | set smartcase 99 | set smartindent 100 | set smarttab 101 | set softtabstop=2 102 | set splitright splitbelow 103 | set tabstop=2 104 | set title 105 | set ttimeout 106 | set ttimeoutlen=50 107 | set ttyfast 108 | set undolevels=1000 109 | set wildignore+=*.DS_Store 110 | set wildmenu 111 | set wildmode=longest:full,full 112 | 113 | if has("balloon_eval") && has("unix") 114 | set ballooneval 115 | endif 116 | 117 | if &t_Co == 8 && $TERM !~# '^linux' 118 | set t_Co=16 119 | endif 120 | 121 | if v:version > 703 || v:version == 703 && has("patch541") 122 | set formatoptions+=j 123 | endif 124 | 125 | if executable('rg') 126 | set grepprg=rg\ 127 | let g:ctrlp_user_command='rg --files %s' 128 | let g:ctrlp_use_caching=0 129 | endif 130 | 131 | let g:ctrlp_by_filename=1 132 | let g:ctrlp_extensions=['line'] 133 | let g:ctrlp_cache_dir=$HOME.'/.vim/tmp/ctrlp/' 134 | let g:ctrlp_custom_ignore='vendor/bundle\|.bundle\|tmp\|spec/support/fixtures\|docs/api\|public/uploads\|.git$' 135 | let g:ctrlp_map='' 136 | 137 | let g:ctrlsf_auto_close=0 138 | 139 | let g:netrw_liststyle=3 140 | 141 | let g:NERDTreeWinSize=40 142 | let g:NERDTreeMinimalUI=1 143 | let g:NERDTreeAutoDeleteBuffer=1 144 | let g:NERDTreeMapUpdir='-' 145 | 146 | let g:SuperTabLongestEnhanced=1 147 | let g:SuperTabLongestHighlight=1 148 | 149 | " Open quick fix and location window items with CtrlP commands 150 | let g:qfenter_enable_autoquickfix=0 151 | let g:qfenter_keymap = {} 152 | let g:qfenter_keymap.vopen = [''] 153 | let g:qfenter_keymap.hopen = ['', '', ''] 154 | let g:qfenter_keymap.topen = [''] 155 | 156 | let g:ale_fix_on_save = 1 157 | let g:ale_fixers = {'javascript': ['eslint', 'trim_whitespace'], 'typescript': ['tslint', 'trim_whitespace']} 158 | let g:ale_history_log_output = 0 159 | let g:ale_javascript_eslint_executable = 'eslint_d' 160 | let g:ale_javascript_eslint_use_global = 1 161 | 162 | let g:ale_typescript_tslint_use_global = 1 163 | let g:ale_typescript_tsserver_use_global = 1 164 | 165 | let g:ale_lint_delay = 666 166 | let g:ale_open_list = 'on_save' 167 | let g:ale_sign_column_always = 1 168 | let g:ale_sign_error = '☠️' 169 | let g:ale_sign_warning = '⚠️' 170 | 171 | let g:vimrubocop_config = '.rubocop.yml' 172 | 173 | if !exists("g:ycm_semantic_triggers") 174 | let g:ycm_semantic_triggers = {} 175 | endif 176 | let g:ycm_semantic_triggers['typescript'] = ['.'] 177 | 178 | let g:yankring_window_height=10 179 | let g:yankring_history_dir=$HOME.'/.vim/tmp/yankring/' 180 | 181 | let g:indexed_search_show_index_mappings=0 182 | let g:indexed_search_colors=0 183 | 184 | let g:javascript_enable_domhtmlcss=1 185 | let g:jsx_ext_required=0 186 | 187 | 188 | " Mappings 189 | " ----------------------------------------------------------------------------- 190 | " RSI reduction 191 | nnoremap j gj 192 | nnoremap k gk 193 | 194 | " Move between splits 195 | noremap h 196 | noremap j 197 | noremap k 198 | noremap l 199 | 200 | " Another alternative mapping 201 | nnoremap :CtrlP 202 | 203 | " NERDTree in a buffer (like netrw) 204 | nnoremap - :silent edit %:p:h 205 | nnoremap _ :silent edit . 206 | 207 | " Override jumplist commands 208 | nnoremap :BufSurfBack 209 | nnoremap :BufSurfForward 210 | 211 | " Function keys 212 | let g:ctrlp_map='' 213 | noremap :NERDTreeToggle 214 | noremap :CtrlPBuffer 215 | nnoremap :GrepperRg 216 | xnoremap y:GrepperRg -F =shellescape(expand(@"),1) 217 | nmap CtrlSFPrompt 218 | vmap CtrlSFVwordExec 219 | noremap :vertical wincmd f 220 | noremap :BufSurfBack 221 | noremap :BufSurfForward 222 | 223 | " The `g` commands (testing) 224 | nnoremap gF :vertical wincmd f 225 | nnoremap gl :CtrlP 226 | nnoremap gL :CtrlPBuffer 227 | nnoremap gy :NERDTreeToggle 228 | nnoremap gs :GrepperRg 229 | xnoremap gs y:GrepperRg -F =shellescape(expand(@"),1) 230 | nmap gz CtrlSFPrompt 231 | vmap gz CtrlSFVwordExec 232 | 233 | " Visually select the text that was last edited/pasted 234 | nnoremap gV `[v`] 235 | 236 | " Clear the search highlight 237 | noremap \ :nohlsearch 238 | 239 | " Remove whitespace 240 | noremap CW :%s/\s\+$// 241 | 242 | " Yank/paste contents using an unnamed register 243 | vnoremap y "xy 244 | noremap p "xp 245 | 246 | " Filetypes 247 | " ----------------------------------------------------------------------------- 248 | func! Eatchar(pat) 249 | let c = nr2char(getchar(0)) 250 | return (c =~ a:pat) ? '' : c 251 | endfunc 252 | 253 | if has("autocmd") 254 | augroup FTOptions 255 | autocmd! 256 | autocmd User Grepper :resize 10 257 | autocmd QuickFixCmdPost *grep* botright copen 258 | autocmd BufNewFile,BufReadPost *.md set filetype=markdown 259 | autocmd FileType markdown,text,txt setlocal tw=80 linebreak nolist wrap spell 260 | autocmd BufNewFile,BufRead COMMIT_EDITMSG setlocal spell 261 | autocmd BufRead,BufNewFile .{babel,eslint}rc set filetype=json 262 | autocmd BufRead,BufNewFile *.{flow} set filetype=javascript 263 | autocmd BufRead,BufNewFile Dangerfile set filetype=ruby 264 | autocmd BufRead,BufNewFile *.{hamlc,slim} set filetype=haml 265 | autocmd BufRead,BufNewFile *.tsx,*.jsx set filetype=typescript.jsx 266 | 267 | " vim-go keybindings 268 | autocmd FileType go nmap r (go-run) 269 | autocmd FileType go nmap b (go-build) 270 | autocmd FileType go nmap t (go-test) 271 | autocmd FileType go nmap c (go-coverage) 272 | autocmd FileType go nmap ds (go-def-split) 273 | autocmd FileType go nmap dv (go-def-vertical) 274 | autocmd FileType go nmap dt (go-def-tab) 275 | autocmd FileType go nmap gd (go-doc) 276 | autocmd FileType go nmap gv (go-doc-vertical) 277 | autocmd FileType go nmap gb (go-doc-browser) 278 | autocmd FileType go nmap s (go-implements) 279 | autocmd FileType go nmap i (go-info) 280 | autocmd FileType go nmap e (go-rename) 281 | 282 | " Abbreviations 283 | autocmd FileType css iabbrev bgc background-color: 284 | autocmd FileType coffee iabbrev cdl console.log()=Eatchar('\s') 285 | autocmd FileType javascript iabbrev cdl console.log()=Eatchar('\s') 286 | autocmd FileType typescript iabbrev cdl console.log()=Eatchar('\s') 287 | augroup END 288 | endif 289 | 290 | " Theme 291 | " ----------------------------------------------------------------------------- 292 | colorscheme pigment 293 | 294 | " Load user config 295 | " ----------------------------------------------------------------------------- 296 | if filereadable(expand("~/.vimrc.local")) 297 | source ~/.vimrc.local 298 | endif 299 | --------------------------------------------------------------------------------