├── .gitignore ├── README.md ├── install.sh ├── oh-my-zsh └── themes │ └── dracula.zsh-theme ├── schemes ├── dracula.itermcolors └── dracula.zsh-theme ├── screenshot.png ├── tmux.conf ├── vim ├── coc-settings.json └── colors │ └── dracula.vim ├── vimrc ├── vimrc.bundles └── zshrc /.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | build 3 | vim/bundle 4 | .DS_Store 5 | vim/vim 6 | vim/init.vim 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # dotfiles 2 | A set of `vim`, `zsh`, and `tmux` configuration files for JavaScript Developer who likes to use Vim/NeoVim on macOS. 3 | 4 | ![Screenshot](screenshot.png) 5 | 6 | Install 7 | ------- 8 | 9 | Clone onto your machine: 10 | 11 | git clone git://github.com/codeaholicguy/dotfiles.git 12 | 13 | Simply run file (maybe you  must run `chmod +x ./install.sh` before run that file): 14 | 15 | ./install.sh --macos 16 | 17 | In `vim/neovim` run: 18 | 19 | :PlugClean 20 | 21 | And follow its steps. 22 | 23 | After, in `vim/neovim` run: 24 | 25 | :PlugInstall 26 | 27 | If you want to get newest version of `vim/neovim` plugin, in `vim/neovim` simply run: 28 | 29 | :PlugUpdate 30 | 31 | Credit 32 | ------- 33 | 34 | Thanks to: 35 | 36 | https://github.com/dracula/dracula-theme/ 37 | 38 | 39 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Utils 4 | function is_installed { 5 | # set to 1 initially 6 | local return_=1 7 | # set to 0 if not found 8 | type $1 >/dev/null 2>&1 || { local return_=0; } 9 | # return 10 | echo "$return_" 11 | } 12 | 13 | function install_macos { 14 | if [[ $OSTYPE != darwin* ]]; then 15 | return 16 | fi 17 | echo "MacOS detected" 18 | xcode-select --install 19 | 20 | if [ "$(is_installed brew)" == "0" ]; then 21 | echo "Installing Homebrew" 22 | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 23 | echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile 24 | eval "$(/opt/homebrew/bin/brew shellenv)" 25 | fi 26 | 27 | if [ ! -d "/Applications/iTerm.app" ]; then 28 | echo "Installing iTerm2" 29 | brew tap homebrew/cask 30 | brew install iterm2 --cask 31 | fi 32 | 33 | if [ "$(is_installed zsh)" == "0" ]; then 34 | echo "Installing zsh" 35 | brew install zsh zsh-completions 36 | fi 37 | 38 | if [[ ! -d ~/.oh-my-zsh ]]; then 39 | echo "Installing oh-my-zsh" 40 | unset ZSH 41 | sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" 42 | fi 43 | 44 | if [ ! -d "$ZSH/custom/plugins/zsh-autosuggestions" ]; then 45 | echo "Installing zsh-autosuggestions" 46 | git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH/custom/plugins/zsh-autosuggestions 47 | fi 48 | 49 | if [ "$(is_installed ag)" == "0" ]; then 50 | echo "Installing The silver searcher" 51 | brew install the_silver_searcher 52 | fi 53 | 54 | if [ "$(is_installed fzf)" == "0" ]; then 55 | echo "Installing fzf" 56 | brew install fzf 57 | /opt/homebrew/opt/fzf/install 58 | fi 59 | 60 | if [ "$(is_installed tmux)" == "0" ]; then 61 | echo "Installing tmux" 62 | brew install tmux 63 | echo "Installing reattach-to-user-namespace" 64 | brew install reattach-to-user-namespace 65 | echo "Installing tmux-plugin-manager" 66 | git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm 67 | fi 68 | 69 | if [ "$(is_installed git)" == "0" ]; then 70 | echo "Installing Git" 71 | brew install git 72 | fi 73 | 74 | if [ "$(is_installed gh)" == "0" ]; then 75 | echo "Installing Github CLI" 76 | brew install gh 77 | fi 78 | 79 | if [ "$(is_installed nvim)" == "0" ]; then 80 | echo "Install neovim" 81 | brew install neovim 82 | if [ "$(is_installed pip3)" == "1" ]; then 83 | pip3 install neovim --upgrade 84 | fi 85 | fi 86 | } 87 | 88 | function backup { 89 | echo "Backing up dotfiles" 90 | local current_date=$(date +%s) 91 | local backup_dir=dotfiles_$current_date 92 | 93 | mkdir ~/$backup_dir 94 | 95 | mv ~/.zshrc ~/$backup_dir/.zshrc 96 | mv ~/.tmux.conf ~/$backup_dir/.tmux.conf 97 | mv ~/.vim ~/$backup_dir/.vim 98 | mv ~/.vimrc ~/$backup_dir/.vimrc 99 | mv ~/.vimrc.bundles ~/$backup_dir/.vimrc.bundles 100 | } 101 | 102 | function link_dotfiles { 103 | echo "Removing existing config" 104 | rm -rf $HOME/.config/nvim/init.vim 105 | rm -rf $HOME/.config/nvim 106 | rm -rf $HOME/.vim/bundle/* 107 | 108 | echo "Linking dotfiles" 109 | ln -s $(pwd)/zshrc ~/.zshrc 110 | ln -s $(pwd)/schemes/dracula.zsh-theme $HOME/.oh-my-zsh/themes/dracula.zsh-theme 111 | 112 | ln -s $(pwd)/tmux.conf ~/.tmux.conf 113 | 114 | echo "Creating vim symlinks" 115 | curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim 116 | 117 | ln -s $(pwd)/vim/colors $HOME/.vim/colors 118 | ln -s $(pwd)/vim/coc-settings.json $HOME/.vim/coc-settings.json 119 | ln -s $(pwd)/vimrc $HOME/.vimrc 120 | ln -s $(pwd)/vimrc $HOME/.vim/init.vim 121 | ln -s $(pwd)/vimrc.bundles ~/.vimrc.bundles 122 | 123 | mkdir -p ${XDG_CONFIG_HOME:=$HOME/.config} 124 | 125 | ln -s $HOME/.vim $XDG_CONFIG_HOME/nvim 126 | 127 | if [[ ! -f ~/.zshrc.local ]]; then 128 | echo "Creating .zshrc.local" 129 | touch ~/.zshrc.local 130 | fi 131 | } 132 | 133 | function post_install { 134 | echo "Post install" 135 | echo "Installing vim plugins" 136 | vim +PlugClean +PlugInstall 137 | 138 | echo "Installing coc plugins" 139 | vim +"CocInstall coc-json coc-tsserver coc-html coc-css coc-yaml coc-python coc-clangd coc-cmake coc-deno coc-docker coc-eslint coc-flutter coc-fzf-preview coc-git coc-go coc-graphql coc-highlight coc-pairs coc-prettier coc-rust-analyzer coc-snippets coc-sql coc-tailwindcss" 140 | 141 | echo "Install nvm" 142 | if [ "$(is_installed nvm)" == "0" ]; then 143 | echo "Installing nvm" 144 | curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash 145 | echo "Please run 'nvm install --lts' to install the latest LTS version of Node.js" 146 | fi 147 | } 148 | 149 | while test $# -gt 0; do 150 | case "$1" in 151 | --help) 152 | echo "Help" 153 | exit 154 | ;; 155 | --macos) 156 | install_macos 157 | backup 158 | link_dotfiles 159 | post_install 160 | zsh 161 | source ~/.zshrc 162 | exit 163 | ;; 164 | --backup) 165 | backup 166 | exit 167 | ;; 168 | --dotfiles) 169 | link_dotfiles 170 | exit 171 | ;; 172 | esac 173 | 174 | shift 175 | done 176 | -------------------------------------------------------------------------------- /oh-my-zsh/themes/dracula.zsh-theme: -------------------------------------------------------------------------------- 1 | # Dracula Theme v1.2.5 2 | # 3 | # https://github.com/dracula/dracula-theme 4 | # 5 | # Copyright 2016, All rights reserved 6 | # 7 | # Code licensed under the MIT license 8 | # http://zenorocha.mit-license.org 9 | # 10 | # @author Zeno Rocha 11 | 12 | local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )" 13 | 14 | PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg_bold[blue]%}%c $(git_prompt_info)% %{$reset_color%}' 15 | 16 | ZSH_THEME_GIT_PROMPT_CLEAN=") %{$fg_bold[green]%}✔ " 17 | ZSH_THEME_GIT_PROMPT_DIRTY=") %{$fg_bold[yellow]%}✗ " 18 | ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[cyan]%}(" 19 | ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" 20 | -------------------------------------------------------------------------------- /schemes/dracula.itermcolors: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Ansi 0 Color 6 | 7 | Alpha Component 8 | 1 9 | Blue Component 10 | 0.0 11 | Color Space 12 | Calibrated 13 | Green Component 14 | 0.0 15 | Red Component 16 | 0.0 17 | 18 | Ansi 1 Color 19 | 20 | Alpha Component 21 | 1 22 | Blue Component 23 | 0.3333333432674408 24 | Color Space 25 | Calibrated 26 | Green Component 27 | 0.3333333432674408 28 | Red Component 29 | 1 30 | 31 | Ansi 10 Color 32 | 33 | Alpha Component 34 | 1 35 | Blue Component 36 | 0.48235294222831726 37 | Color Space 38 | Calibrated 39 | Green Component 40 | 0.98039215803146362 41 | Red Component 42 | 0.31372550129890442 43 | 44 | Ansi 11 Color 45 | 46 | Alpha Component 47 | 1 48 | Blue Component 49 | 0.54901963472366333 50 | Color Space 51 | Calibrated 52 | Green Component 53 | 0.98039215803146362 54 | Red Component 55 | 0.94509804248809814 56 | 57 | Ansi 12 Color 58 | 59 | Alpha Component 60 | 1 61 | Blue Component 62 | 0.97647058963775635 63 | Color Space 64 | Calibrated 65 | Green Component 66 | 0.57647061347961426 67 | Red Component 68 | 0.74117648601531982 69 | 70 | Ansi 13 Color 71 | 72 | Alpha Component 73 | 1 74 | Blue Component 75 | 0.7764706015586853 76 | Color Space 77 | Calibrated 78 | Green Component 79 | 0.47450980544090271 80 | Red Component 81 | 1 82 | 83 | Ansi 14 Color 84 | 85 | Alpha Component 86 | 1 87 | Blue Component 88 | 0.99215686321258545 89 | Color Space 90 | Calibrated 91 | Green Component 92 | 0.91372549533843994 93 | Red Component 94 | 0.54509806632995605 95 | 96 | Ansi 15 Color 97 | 98 | Alpha Component 99 | 1 100 | Blue Component 101 | 1 102 | Color Space 103 | Calibrated 104 | Green Component 105 | 1 106 | Red Component 107 | 1 108 | 109 | Ansi 2 Color 110 | 111 | Alpha Component 112 | 1 113 | Blue Component 114 | 0.48235294222831726 115 | Color Space 116 | Calibrated 117 | Green Component 118 | 0.98039215803146362 119 | Red Component 120 | 0.31372550129890442 121 | 122 | Ansi 3 Color 123 | 124 | Alpha Component 125 | 1 126 | Blue Component 127 | 0.54901963472366333 128 | Color Space 129 | Calibrated 130 | Green Component 131 | 0.98039215803146362 132 | Red Component 133 | 0.94509804248809814 134 | 135 | Ansi 4 Color 136 | 137 | Alpha Component 138 | 1 139 | Blue Component 140 | 0.97647058963775635 141 | Color Space 142 | Calibrated 143 | Green Component 144 | 0.57647061347961426 145 | Red Component 146 | 0.74117648601531982 147 | 148 | Ansi 5 Color 149 | 150 | Alpha Component 151 | 1 152 | Blue Component 153 | 0.7764706015586853 154 | Color Space 155 | Calibrated 156 | Green Component 157 | 0.47450980544090271 158 | Red Component 159 | 1 160 | 161 | Ansi 6 Color 162 | 163 | Alpha Component 164 | 1 165 | Blue Component 166 | 0.99215686321258545 167 | Color Space 168 | Calibrated 169 | Green Component 170 | 0.91372549533843994 171 | Red Component 172 | 0.54509806632995605 173 | 174 | Ansi 7 Color 175 | 176 | Alpha Component 177 | 1 178 | Blue Component 179 | 0.73333334922790527 180 | Color Space 181 | Calibrated 182 | Green Component 183 | 0.73333334922790527 184 | Red Component 185 | 0.73333334922790527 186 | 187 | Ansi 8 Color 188 | 189 | Alpha Component 190 | 1 191 | Blue Component 192 | 0.33333333333333331 193 | Color Space 194 | Calibrated 195 | Green Component 196 | 0.33333333333333331 197 | Red Component 198 | 0.33333333333333331 199 | 200 | Ansi 9 Color 201 | 202 | Alpha Component 203 | 1 204 | Blue Component 205 | 0.3333333432674408 206 | Color Space 207 | Calibrated 208 | Green Component 209 | 0.3333333432674408 210 | Red Component 211 | 1 212 | 213 | Background Color 214 | 215 | Alpha Component 216 | 1 217 | Blue Component 218 | 0.15977837145328522 219 | Color Space 220 | Calibrated 221 | Green Component 222 | 0.12215272337198257 223 | Red Component 224 | 0.11765811592340469 225 | 226 | Badge Color 227 | 228 | Alpha Component 229 | 0.5 230 | Blue Component 231 | 0.0 232 | Color Space 233 | Calibrated 234 | Green Component 235 | 0.0 236 | Red Component 237 | 1 238 | 239 | Bold Color 240 | 241 | Alpha Component 242 | 1 243 | Blue Component 244 | 0.90237069129943848 245 | Color Space 246 | Calibrated 247 | Green Component 248 | 0.90237069129943848 249 | Red Component 250 | 0.90237069129943848 251 | 252 | Cursor Color 253 | 254 | Alpha Component 255 | 1 256 | Blue Component 257 | 0.73333334922790527 258 | Color Space 259 | Calibrated 260 | Green Component 261 | 0.73333334922790527 262 | Red Component 263 | 0.73333334922790527 264 | 265 | Cursor Guide Color 266 | 267 | Alpha Component 268 | 0.25 269 | Blue Component 270 | 1 271 | Color Space 272 | Calibrated 273 | Green Component 274 | 0.9100000262260437 275 | Red Component 276 | 0.64999997615814209 277 | 278 | Cursor Text Color 279 | 280 | Alpha Component 281 | 1 282 | Blue Component 283 | 1 284 | Color Space 285 | Calibrated 286 | Green Component 287 | 1 288 | Red Component 289 | 1 290 | 291 | Foreground Color 292 | 293 | Alpha Component 294 | 1 295 | Blue Component 296 | 0.90032327175140381 297 | Color Space 298 | Calibrated 299 | Green Component 300 | 0.90032327175140381 301 | Red Component 302 | 0.90032327175140381 303 | 304 | Link Color 305 | 306 | Alpha Component 307 | 1 308 | Blue Component 309 | 0.67799997329711914 310 | Color Space 311 | Calibrated 312 | Green Component 313 | 0.27000001072883606 314 | Red Component 315 | 0.023000000044703484 316 | 317 | Selected Text Color 318 | 319 | Alpha Component 320 | 1 321 | Blue Component 322 | 1 323 | Color Space 324 | Calibrated 325 | Green Component 326 | 1 327 | Red Component 328 | 1 329 | 330 | Selection Color 331 | 332 | Alpha Component 333 | 1 334 | Blue Component 335 | 0.35294118523597717 336 | Color Space 337 | Calibrated 338 | Green Component 339 | 0.27843138575553894 340 | Red Component 341 | 0.26666668057441711 342 | 343 | 344 | 345 | -------------------------------------------------------------------------------- /schemes/dracula.zsh-theme: -------------------------------------------------------------------------------- 1 | # Dracula Theme v1.2.5 2 | # 3 | # https://github.com/dracula/dracula-theme 4 | # 5 | # Copyright 2016, All rights reserved 6 | # 7 | # Code licensed under the MIT license 8 | # http://zenorocha.mit-license.org 9 | # 10 | # @author Zeno Rocha 11 | 12 | local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )" 13 | 14 | PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg_bold[blue]%}%c $(git_prompt_info)% %{$reset_color%}' 15 | 16 | ZSH_THEME_GIT_PROMPT_CLEAN=") %{$fg_bold[green]%}✔ " 17 | ZSH_THEME_GIT_PROMPT_DIRTY=") %{$fg_bold[yellow]%}✗ " 18 | ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[cyan]%}(" 19 | ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" 20 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeaholicguy/dotfiles/6451ea41c127968d43ec6caf3e5bad543a66a506/screenshot.png -------------------------------------------------------------------------------- /tmux.conf: -------------------------------------------------------------------------------- 1 | set -g base-index 1 2 | set -g pane-base-index 1 3 | 4 | set-option -g allow-rename off 5 | 6 | # True colors mode 7 | # Add truecolor support 8 | set-option -ga terminal-overrides ",*:Tc" 9 | # Default terminal is 256 colors 10 | set -g default-terminal "screen-256color" 11 | 12 | # Statusbar has white on black/transparent background 13 | set -g status-bg default 14 | set -g status-fg default 15 | 16 | set -g @online_icon "ON" 17 | set -g @offline_icon "OFF" 18 | 19 | set -g status-right-length 65 20 | set -g status-left-length 15 21 | set -g status-right " Online: #{online_status} | Battery: #{battery_percentage} | %H:%M %a %d-%b-%Y " 22 | 23 | setw -g window-status-format " #I #W " 24 | setw -g window-status-current-format " #I #W " 25 | setw -g window-status-current-style fg=black,bg=colour48 26 | 27 | # Remap prefix to C-a 28 | set -g prefix C-a 29 | bind C-a send-prefix 30 | unbind C-b 31 | 32 | # Quick reload 33 | bind r source-file ~/.tmux.conf 34 | 35 | # Keymap 36 | bind \\ split-window -h -c '#{pane_current_path}' 37 | bind \/ split-window -v -c '#{pane_current_path}' 38 | unbind '"' 39 | unbind % 40 | 41 | bind h select-pane -L 42 | bind j select-pane -D 43 | bind k select-pane -U 44 | bind l select-pane -R 45 | 46 | bind J resize-pane -D 10 47 | bind K resize-pane -U 10 48 | bind L resize-pane -L 10 49 | bind H resize-pane -R 10 50 | 51 | # Use vim keybindings in copy mode 52 | setw -g mode-keys vi 53 | 54 | # Setup 'v' to begin selection as in Vim 55 | bind-key -Tcopy-mode-vi 'v' send -X begin-selection 56 | bind-key -Tcopy-mode-vi 'y' send -X copy-pipe "reattach-to-user-namespace pbcopy" 57 | 58 | set -g default-shell $SHELL 59 | set -g default-command "reattach-to-user-namespace -l ${SHELL}" 60 | 61 | # Setting for vim 62 | set-option -sg escape-time 10 63 | 64 | # List of plugins 65 | set -g @plugin 'tmux-plugins/tpm' 66 | set -g @plugin 'tmux-plugins/tmux-battery' 67 | set -g @plugin 'tmux-plugins/tmux-online-status' 68 | 69 | # Other examples: 70 | # set -g @plugin 'github_username/plugin_name' 71 | # set -g @plugin 'git@github.com/user/plugin' 72 | # set -g @plugin 'git@bitbucket.com/user/plugin' 73 | 74 | # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) 75 | run '~/.tmux/plugins/tpm/tpm' 76 | -------------------------------------------------------------------------------- /vim/coc-settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "tsserver.implicitProjectConfig.experimentalDecorators": true, 3 | "snippets.ultisnips.usePythonx": false, 4 | "snippets.ultisnips.pythonPrompt": false 5 | } 6 | -------------------------------------------------------------------------------- /vim/colors/dracula.vim: -------------------------------------------------------------------------------- 1 | " Dracula Theme v1.2.7 2 | " 3 | " https://github.com/zenorocha/dracula-theme 4 | " 5 | " Copyright 2016, All rights reserved 6 | " 7 | " Code licensed under the MIT license 8 | " http://zenorocha.mit-license.org 9 | " 10 | " @author Trevor Heins <@heinst> 11 | " @author Éverton Ribeiro 12 | " @author Zeno Rocha 13 | 14 | set background=dark 15 | highlight clear 16 | 17 | if exists("syntax_on") 18 | syntax reset 19 | endif 20 | 21 | let g:colors_name = "dracula" 22 | 23 | hi Cursor ctermfg=17 ctermbg=231 cterm=NONE guifg=#282a36 guibg=#f8f8f0 gui=NONE 24 | hi Visual ctermfg=NONE ctermbg=241 cterm=NONE guifg=NONE guibg=#44475a gui=NONE 25 | hi CursorLine ctermbg=234 cterm=NONE guifg=NONE guibg=#44475a gui=NONE 26 | hi CursorColumn ctermbg=234 cterm=NONE guifg=NONE guibg=#44475a gui=NONE 27 | hi ColorColumn ctermfg=NONE ctermbg=236 cterm=NONE guifg=NONE guibg=#3d3f49 gui=NONE 28 | hi LineNr ctermfg=60 ctermbg=NONE cterm=NONE guifg=#909194 guibg=#282a36 gui=NONE 29 | hi VertSplit ctermfg=231 ctermbg=236 cterm=bold guifg=#64666d guibg=#64666d gui=bold 30 | hi MatchParen ctermfg=212 ctermbg=NONE cterm=underline guifg=#ff79c6 guibg=NONE gui=underline 31 | hi StatusLine ctermfg=231 ctermbg=236 cterm=bold guifg=#f8f8f2 guibg=#64666d gui=bold 32 | hi StatusLineNC ctermfg=231 ctermbg=236 cterm=NONE guifg=#f8f8f2 guibg=#64666d gui=NONE 33 | hi Pmenu ctermfg=NONE ctermbg=236 cterm=NONE guifg=NONE guibg=#44475a gui=NONE 34 | hi PmenuSel ctermfg=NONE ctermbg=245 cterm=NONE guifg=NONE guibg=#8a8a8a gui=NONE 35 | hi IncSearch ctermfg=17 ctermbg=228 cterm=NONE guifg=#282a36 guibg=#f1fa8c gui=NONE 36 | hi Search ctermfg=17 ctermbg=228 cterm=NONE guifg=#282a36 guibg=#f1fa8c gui=NONE 37 | hi Directory ctermfg=141 ctermbg=NONE cterm=NONE guifg=#bd93f9 guibg=NONE gui=NONE 38 | hi Folded ctermfg=61 ctermbg=235 cterm=NONE guifg=#6272a4 guibg=#282a36 gui=NONE 39 | hi SignColumn ctermfg=246 ctermbg=235 cterm=NONE guifg=#909194 guibg=#44475a gui=NONE 40 | hi FoldColmun ctermfg=246 ctermbg=235 cterm=NONE guifg=#909194 guibg=#44475a gui=NONE 41 | hi Normal guifg=#f8f8f2 guibg=#282a36 gui=NONE 42 | hi Boolean ctermfg=141 ctermbg=NONE cterm=NONE guifg=#bd93f9 guibg=NONE gui=NONE 43 | hi Character ctermfg=141 ctermbg=NONE cterm=NONE guifg=#bd93f9 guibg=NONE gui=NONE 44 | hi Comment ctermfg=61 ctermbg=NONE cterm=NONE guifg=#6272a4 guibg=NONE gui=NONE 45 | hi Conditional ctermfg=212 ctermbg=NONE cterm=NONE guifg=#ff79c6 guibg=NONE gui=NONE 46 | hi Constant ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 47 | hi Define ctermfg=212 ctermbg=NONE cterm=NONE guifg=#ff79c6 guibg=NONE gui=NONE 48 | hi DiffAdd ctermfg=231 ctermbg=64 cterm=bold guifg=#f8f8f2 guibg=#468410 gui=bold 49 | hi DiffDelete ctermfg=88 ctermbg=NONE cterm=NONE guifg=#8b080b guibg=NONE gui=NONE 50 | hi DiffChange ctermfg=231 ctermbg=23 cterm=NONE guifg=#f8f8f2 guibg=#243a5f gui=NONE 51 | hi DiffText ctermfg=231 ctermbg=24 cterm=bold guifg=#f8f8f2 guibg=#204a87 gui=bold 52 | hi ErrorMsg ctermfg=231 ctermbg=212 cterm=NONE guifg=#f8f8f0 guibg=#ff79c6 gui=NONE 53 | hi WarningMsg ctermfg=231 ctermbg=212 cterm=NONE guifg=#f8f8f0 guibg=#ff79c6 gui=NONE 54 | hi Float ctermfg=141 ctermbg=NONE cterm=NONE guifg=#bd93f9 guibg=NONE gui=NONE 55 | hi Function ctermfg=84 ctermbg=NONE cterm=NONE guifg=#50fa7b guibg=NONE gui=NONE 56 | hi Identifier ctermfg=117 ctermbg=NONE cterm=NONE guifg=#8be9fd guibg=NONE gui=italic 57 | hi Keyword ctermfg=212 ctermbg=NONE cterm=NONE guifg=#ff79c6 guibg=NONE gui=NONE 58 | hi Label ctermfg=228 ctermbg=NONE cterm=NONE guifg=#f1fa8c guibg=NONE gui=NONE 59 | hi NonText ctermfg=231 ctermbg=NONE cterm=NONE guifg=#525563 guibg=#282a36 gui=NONE 60 | hi Number ctermfg=141 ctermbg=NONE cterm=NONE guifg=#bd93f9 guibg=NONE gui=NONE 61 | hi Operator ctermfg=212 ctermbg=NONE cterm=NONE guifg=#ff79c6 guibg=NONE gui=NONE 62 | hi PreProc ctermfg=212 ctermbg=NONE cterm=NONE guifg=#ff79c6 guibg=NONE gui=NONE 63 | hi Special ctermfg=231 ctermbg=NONE cterm=NONE guifg=#f8f8f2 guibg=NONE gui=NONE 64 | hi SpecialKey ctermfg=231 ctermbg=235 cterm=NONE guifg=#525563 guibg=#282a36 gui=NONE 65 | hi Statement ctermfg=212 ctermbg=NONE cterm=NONE guifg=#ff79c6 guibg=NONE gui=NONE 66 | hi StorageClass ctermfg=117 ctermbg=NONE cterm=NONE guifg=#8be9fd guibg=NONE gui=italic 67 | hi String ctermfg=228 ctermbg=NONE cterm=NONE guifg=#f1fa8c guibg=NONE gui=NONE 68 | hi Tag ctermfg=212 ctermbg=NONE cterm=NONE guifg=#ff79c6 guibg=NONE gui=NONE 69 | hi Title ctermfg=231 ctermbg=NONE cterm=bold guifg=#f8f8f2 guibg=NONE gui=bold 70 | hi Todo ctermfg=61 ctermbg=NONE cterm=inverse,bold guifg=#6272a4 guibg=NONE gui=inverse,bold 71 | hi Type ctermfg=117 ctermbg=NONE cterm=NONE guifg=#8be9fd guibg=NONE gui=NONE 72 | hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline guifg=NONE guibg=NONE gui=underline 73 | hi rubyClass ctermfg=212 ctermbg=NONE cterm=NONE guifg=#ff79c6 guibg=NONE gui=NONE 74 | hi rubyFunction ctermfg=84 ctermbg=NONE cterm=NONE guifg=#50fa7b guibg=NONE gui=NONE 75 | hi rubyInterpolationDelimiter ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 76 | hi rubySymbol ctermfg=141 ctermbg=NONE cterm=NONE guifg=#bd93f9 guibg=NONE gui=NONE 77 | hi rubyConstant ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic 78 | hi rubyStringDelimiter ctermfg=228 ctermbg=NONE cterm=NONE guifg=#f1fa8c guibg=NONE gui=NONE 79 | hi rubyBlockParameter ctermfg=215 ctermbg=NONE cterm=NONE guifg=#ffb86c guibg=NONE gui=italic 80 | hi rubyInstanceVariable ctermfg=203 ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 81 | hi rubyInclude ctermfg=212 ctermbg=NONE cterm=NONE guifg=#ff79c6 guibg=NONE gui=NONE 82 | hi rubyGlobalVariable ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 83 | hi rubyRegexp ctermfg=228 ctermbg=NONE cterm=NONE guifg=#f1fa8c guibg=NONE gui=NONE 84 | hi rubyRegexpDelimiter ctermfg=228 ctermbg=NONE cterm=NONE guifg=#f1fa8c guibg=NONE gui=NONE 85 | hi rubyEscape ctermfg=141 ctermbg=NONE cterm=NONE guifg=#bd93f9 guibg=NONE gui=NONE 86 | hi rubyControl ctermfg=212 ctermbg=NONE cterm=NONE guifg=#ff79c6 guibg=NONE gui=NONE 87 | hi rubyClassVariable ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 88 | hi rubyOperator ctermfg=212 ctermbg=NONE cterm=NONE guifg=#ff79c6 guibg=NONE gui=NONE 89 | hi rubyException ctermfg=212 ctermbg=NONE cterm=NONE guifg=#ff79c6 guibg=NONE gui=NONE 90 | hi rubyPseudoVariable ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 91 | hi rubyRailsUserClass ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic 92 | hi rubyRailsARAssociationMethod ctermfg=117 ctermbg=NONE cterm=NONE guifg=#8be9fd guibg=NONE gui=NONE 93 | hi rubyRailsARMethod ctermfg=117 ctermbg=NONE cterm=NONE guifg=#8be9fd guibg=NONE gui=NONE 94 | hi rubyRailsRenderMethod ctermfg=117 ctermbg=NONE cterm=NONE guifg=#8be9fd guibg=NONE gui=NONE 95 | hi rubyRailsMethod ctermfg=117 ctermbg=NONE cterm=NONE guifg=#8be9fd guibg=NONE gui=NONE 96 | hi erubyDelimiter ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 97 | hi erubyComment ctermfg=61 ctermbg=NONE cterm=NONE guifg=#6272a4 guibg=NONE gui=NONE 98 | hi erubyRailsMethod ctermfg=117 ctermbg=NONE cterm=NONE guifg=#8be9fd guibg=NONE gui=NONE 99 | hi htmlTag ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 100 | hi htmlEndTag ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 101 | hi htmlTagName ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 102 | hi htmlArg ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 103 | hi htmlSpecialChar ctermfg=141 ctermbg=NONE cterm=NONE guifg=#bd93f9 guibg=NONE gui=NONE 104 | hi javaScriptFunction ctermfg=117 ctermbg=NONE cterm=NONE guifg=#8be9fd guibg=NONE gui=italic 105 | hi javaScriptRailsFunction ctermfg=117 ctermbg=NONE cterm=NONE guifg=#8be9fd guibg=NONE gui=NONE 106 | hi javaScriptBraces ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 107 | hi yamlKey ctermfg=212 ctermbg=NONE cterm=NONE guifg=#ff79c6 guibg=NONE gui=NONE 108 | hi yamlAnchor ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 109 | hi yamlAlias ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 110 | hi yamlDocumentHeader ctermfg=228 ctermbg=NONE cterm=NONE guifg=#f1fa8c guibg=NONE gui=NONE 111 | hi cssURL ctermfg=215 ctermbg=NONE cterm=NONE guifg=#ffb86c guibg=NONE gui=italic 112 | hi cssFunctionName ctermfg=117 ctermbg=NONE cterm=NONE guifg=#8be9fd guibg=NONE gui=NONE 113 | hi cssColor ctermfg=141 ctermbg=NONE cterm=NONE guifg=#bd93f9 guibg=NONE gui=NONE 114 | hi cssPseudoClassId ctermfg=84 ctermbg=NONE cterm=NONE guifg=#50fa7b guibg=NONE gui=NONE 115 | hi cssClassName ctermfg=84 ctermbg=NONE cterm=NONE guifg=#50fa7b guibg=NONE gui=NONE 116 | hi cssValueLength ctermfg=141 ctermbg=NONE cterm=NONE guifg=#bd93f9 guibg=NONE gui=NONE 117 | hi cssCommonAttr ctermfg=81 ctermbg=NONE cterm=NONE guifg=#6be5fd guibg=NONE gui=NONE 118 | hi cssBraces ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 119 | hi TabLineFill guifg=#333333 guibg=#282a36 gui=none 120 | hi TabLine guifg=#666666 guibg=#282a36 gui=none 121 | hi TabLineSel guifg=WHITE guibg=#282a36 gui=none 122 | 123 | " Elixir {{{ 124 | hi elixirAtom ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic" 125 | hi elixirModuleDeclaration ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic" 126 | hi elixirAlias ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic" 127 | hi elixirInterpolationDelimiter ctermfg=84 ctermbg=NONE cterm=NONE guifg=#50fa7b guibg=NONE gui=NONE 128 | hi elixirStringDelimiter ctermfg=228 ctermbg=NONE cterm=NONE guifg=#f1fa8c guibg=NONE gui=NONE 129 | "}}} 130 | " 131 | " Vim Script {{{ 132 | hi vimGroupName ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE 133 | hi vimGroup ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE 134 | hi vimOption ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE 135 | hi vimHiCtermFgBg ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE 136 | hi vimHiGuiFgBg ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE 137 | " }}} 138 | 139 | 140 | " 141 | "cygwin has an annoying behavior where it resets background to light 142 | "regardless of what is set above, so we force it yet again 143 | " 144 | "add these to get cygwin shell working when used to ssh into a centos6 vm 145 | "this requires your TERM=xterm-256color in the guest vm 146 | "- one way to do this is to append to /home/vagrant/.bash_profile ala: 147 | " TERM=xterm-256color 148 | " export $TERM 149 | 150 | execute "set background=dark" 151 | "------------------- 152 | -------------------------------------------------------------------------------- /vimrc: -------------------------------------------------------------------------------- 1 | " Leader 2 | let mapleader = " " 3 | 4 | set backspace=2 " Backspace deletes like most programs in insert mode 5 | set nobackup 6 | set nowritebackup 7 | set noswapfile 8 | set history=50 9 | set ruler " show the cursor position all the time 10 | set showcmd " display incomplete commands 11 | set incsearch " do incremental searching 12 | set laststatus=2 " Always display the status line 13 | set autowrite " Automatically :write before running commands 14 | 15 | set autoindent 16 | set smartindent 17 | 18 | set autoread 19 | set autowrite 20 | 21 | " Softtabs, 2 spaces 22 | set tabstop=2 23 | set shiftwidth=2 24 | set shiftround 25 | set expandtab 26 | 27 | " Make it obvious where 80 characters is 28 | set textwidth=80 29 | set colorcolumn=+1 30 | 31 | " Display extra whitespace 32 | " set list listchars=tab:»·,trail:·,nbsp:· 33 | 34 | " Use one space, not two, after punctuation. 35 | set nojoinspaces 36 | 37 | " Numbers 38 | set relativenumber 39 | set number 40 | set numberwidth=5 41 | 42 | " Open new split panes to right and bottom, which feels more natural 43 | set splitbelow 44 | set splitright 45 | 46 | " Autocomplete with dictionary words when spell check is on 47 | set complete+=kspell 48 | 49 | " Always use vertical diffs 50 | set diffopt+=vertical 51 | 52 | " Copy to clipboard 53 | set clipboard=unnamed 54 | 55 | set lazyredraw 56 | set termguicolors 57 | 58 | set updatetime=300 59 | 60 | set background=dark 61 | 62 | set rtp+=/opt/homebrew/opt/fzf 63 | 64 | colorscheme dracula 65 | 66 | let g:python3_host_prog="/usr/bin/python3" 67 | 68 | filetype plugin indent on 69 | 70 | " Switch syntax highlighting on, when the terminal has colors 71 | " Also switch on highlighting the last used search pattern. 72 | if (&t_Co > 2 || has("gui_running")) && !exists("syntax_on") 73 | syntax on 74 | endif 75 | 76 | if filereadable(expand("~/.vimrc.bundles")) 77 | source ~/.vimrc.bundles 78 | endif 79 | 80 | augroup vimrcEx 81 | autocmd! 82 | " When editing a file, always jump to the last known cursor position. 83 | " Don't do it for commit messages, when the position is invalid, or when 84 | " inside an event handler (happens when dropping a file on gvim). 85 | autocmd BufReadPost * 86 | \ if &ft != 'gitcommit' && line("'\"") > 0 && line("'\"") <= line("$") | 87 | \ exe "normal g`\"" | 88 | \ endif 89 | augroup END 90 | 91 | " Go file config 92 | au FileType go set noexpandtab 93 | au FileType go set shiftwidth=4 94 | au FileType go set softtabstop=4 95 | au FileType go set tabstop=4 96 | 97 | au BufRead,BufNewFile .eslintrc.json setlocal filetype=json 98 | au BufRead,BufNewFile .babelrc setlocal filetype=json 99 | au BufRead,BufNewFile .prettierrc setlocal filetype=json 100 | 101 | au BufRead,BufNewFile .babelrc.js setlocal filetype=javascript 102 | au BufRead,BufNewFile .sequelizerc setlocal filetype=javascript 103 | au BufRead,BufNewFile *.hbs setlocal filetype=html 104 | 105 | " When the type of shell script is /bin/sh, assume a POSIX-compatible 106 | " shell for syntax highlighting purposes. 107 | let g:is_posix = 1 108 | 109 | " Use tab with text block 110 | vmap >gv 111 | vmap :echoe "Use h" 115 | nnoremap :echoe "Use l" 116 | nnoremap :echoe "Use k" 117 | nnoremap :echoe "Use j" 118 | 119 | nnoremap \ :vsplit 120 | nnoremap / :split 121 | 122 | nmap = :res +2 " increase pane by 2 123 | nmap - :res -2 " decrease pane by 2 124 | nmap ] :vertical res +2 " vertical increase pane by 2 125 | nmap [ :vertical res -2 " vertical decrease pane by 2 126 | 127 | " Remove highlight 128 | map :nohl 129 | 130 | " NERD tree configuration 131 | noremap :NERDTreeToggle 132 | nnoremap F :NERDTreeFind 133 | 134 | let NERDTreeShowHidden=1 135 | 136 | " fzf 137 | noremap ` :Files 138 | noremap ; :Buffers 139 | 140 | " bind \ (backward slash) to grep shortcut 141 | nnoremap K :Ag 142 | nnoremap / 143 | nnoremap \ :Ag 144 | 145 | " coc.vim config 146 | 147 | " Use tab for trigger completion with characters ahead and navigate. 148 | " NOTE: Use command ':verbose imap ' to make sure tab is not mapped by 149 | " other plugin before putting this into your config. 150 | inoremap 151 | \ coc#pum#visible() ? coc#pum#next(1): 152 | \ CheckBackspace() ? "\" : 153 | \ coc#refresh() 154 | inoremap coc#pum#visible() ? coc#pum#prev(1) : "\" 155 | 156 | " Make to accept selected completion item or notify coc.nvim to format 157 | " u breaks current undo, please make your own choice. 158 | inoremap coc#pum#visible() ? coc#pum#confirm() 159 | \: "\u\\=coc#on_enter()\" 160 | 161 | " Remap keys for gotos 162 | " GoTo code navigation. 163 | nmap gd (coc-definition) 164 | nmap gy (coc-type-definition) 165 | nmap gi (coc-implementation) 166 | nmap gr (coc-references) 167 | 168 | " Use `[g` and `]g` to navigate diagnostics 169 | " Use `:CocDiagnostics` to get all diagnostics of current buffer in location list. 170 | nmap [g (coc-diagnostic-prev) 171 | nmap ]g (coc-diagnostic-next) 172 | 173 | nmap rn (coc-rename) 174 | 175 | nnoremap R :CocCommand 176 | 177 | " Use `:Format` to format current buffer 178 | command! -nargs=0 Format :call CocAction('format') 179 | 180 | nmap f :Format 181 | 182 | " Apply AutoFix to problem on the current line. 183 | nmap fc (coc-fix-current) 184 | 185 | " Easymotion 186 | " s{char}{char} to move to {char}{char} over windows 187 | nmap F (easymotion-overwin-f) 188 | " Move to line over windows 189 | nmap L (easymotion-overwin-line) 190 | " Search n-chars 191 | map / (easymotion-sn) 192 | 193 | " Lightline 194 | let g:lightline = { 195 | \ 'colorscheme': 'darcula', 196 | \ 'active': { 197 | \ 'left': [ [ 'mode', 'paste' ], 198 | \ [ 'gitbranch', 'cocstatus', 'readonly', 'filename', 'modified' ] ], 199 | \ 'right': [ [ 'lineinfo', 'percent' ], 200 | \ [ 'fileformat', 'fileencoding', 'filetype' ] ] 201 | \ }, 202 | \ 'separator': { 'left': '', 'right': '' }, 203 | \ 'subseparator': { 'left': '', 'right': '' }, 204 | \ 'component_function': { 205 | \ 'gitbranch': 'fugitive#head', 206 | \ 'cocstatus': 'coc#status' 207 | \ }, 208 | \ } 209 | 210 | " Multi select 211 | let g:multi_cursor_next_key='' 212 | let g:multi_cursor_prev_key='' 213 | let g:multi_cursor_skip_key='' 214 | 215 | " fzf.vim 216 | " Customize fzf colors to match your color scheme 217 | let g:fzf_colors = 218 | \ { 'fg': ['fg', 'Normal'], 219 | \ 'bg': ['bg', 'Normal'], 220 | \ 'hl': ['fg', 'Comment'], 221 | \ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'], 222 | \ 'bg+': ['bg', 'CursorLine', 'CursorColumn'], 223 | \ 'hl+': ['fg', 'Statement'], 224 | \ 'info': ['fg', 'PreProc'], 225 | \ 'border': ['fg', 'Ignore'], 226 | \ 'prompt': ['fg', 'Conditional'], 227 | \ 'pointer': ['fg', 'Exception'], 228 | \ 'marker': ['fg', 'Keyword'], 229 | \ 'spinner': ['fg', 'Label'], 230 | \ 'header': ['fg', 'Comment'] } 231 | 232 | " Auto close tag 233 | let g:closetag_filenames = '*.html,*.js,*.jsx,*.vue' 234 | let g:closetag_emptyTags_caseSensitive = 1 235 | let g:jsx_ext_required = 0 236 | 237 | " Local config 238 | if filereadable($HOME . "/.vimrc.local") 239 | source ~/.vimrc.local 240 | endif 241 | -------------------------------------------------------------------------------- /vimrc.bundles: -------------------------------------------------------------------------------- 1 | call plug#begin('~/.vim/bundle') 2 | 3 | " Define bundles via Github repos 4 | Plug 'itchyny/lightline.vim' 5 | Plug 'airblade/vim-gitgutter' 6 | Plug 'tpope/vim-fugitive' 7 | Plug 'scrooloose/nerdcommenter' 8 | Plug 'easymotion/vim-easymotion' 9 | Plug 'scrooloose/nerdtree' 10 | Plug 'Xuyuanp/nerdtree-git-plugin' 11 | Plug 'terryma/vim-multiple-cursors' 12 | Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } 13 | Plug 'junegunn/fzf.vim' 14 | Plug 'editorconfig/editorconfig-vim' 15 | Plug 'dracula/vim' 16 | Plug 'honza/vim-snippets' 17 | Plug 'neoclide/coc.nvim', {'branch': 'release'} 18 | Plug 'mattn/emmet-vim' 19 | Plug 'dart-lang/dart-vim-plugin' 20 | Plug 'github/copilot.vim' 21 | 22 | call plug#end() 23 | 24 | " Local config 25 | if filereadable($HOME . "/.vimrc.bundles.local") 26 | source ~/.vimrc.bundles.local 27 | endif 28 | -------------------------------------------------------------------------------- /zshrc: -------------------------------------------------------------------------------- 1 | # If you come from bash you might have to change your $PATH. 2 | export PATH=$HOME/bin:/usr/local/bin:$PATH 3 | 4 | # Path to your oh-my-zsh installation. 5 | export ZSH="$HOME/.oh-my-zsh" 6 | 7 | # Set name of the theme to load --- if set to "random", it will 8 | # load a random theme each time oh-my-zsh is loaded, in which case, 9 | # to know which specific one was loaded, run: echo $RANDOM_THEME 10 | # See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes 11 | ZSH_THEME="dracula" 12 | 13 | # Set list of themes to pick from when loading at random 14 | # Setting this variable when ZSH_THEME=random will cause zsh to load 15 | # a theme from this variable instead of looking in $ZSH/themes/ 16 | # If set to an empty array, this variable will have no effect. 17 | # ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) 18 | 19 | # Uncomment the following line to use case-sensitive completion. 20 | # CASE_SENSITIVE="true" 21 | 22 | # Uncomment the following line to use hyphen-insensitive completion. 23 | # Case-sensitive completion must be off. _ and - will be interchangeable. 24 | # HYPHEN_INSENSITIVE="true" 25 | 26 | # Uncomment one of the following lines to change the auto-update behavior 27 | # zstyle ':omz:update' mode disabled # disable automatic updates 28 | # zstyle ':omz:update' mode auto # update automatically without asking 29 | # zstyle ':omz:update' mode reminder # just remind me to update when it's time 30 | 31 | # Uncomment the following line to change how often to auto-update (in days). 32 | # zstyle ':omz:update' frequency 13 33 | 34 | # Uncomment the following line if pasting URLs and other text is messed up. 35 | # DISABLE_MAGIC_FUNCTIONS="true" 36 | 37 | # Uncomment the following line to disable colors in ls. 38 | # DISABLE_LS_COLORS="true" 39 | 40 | # Uncomment the following line to disable auto-setting terminal title. 41 | # DISABLE_AUTO_TITLE="true" 42 | 43 | # Uncomment the following line to enable command auto-correction. 44 | # ENABLE_CORRECTION="true" 45 | 46 | # Uncomment the following line to display red dots whilst waiting for completion. 47 | # You can also set it to another string to have that shown instead of the default red dots. 48 | # e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" 49 | # Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) 50 | # COMPLETION_WAITING_DOTS="true" 51 | 52 | # Uncomment the following line if you want to disable marking untracked files 53 | # under VCS as dirty. This makes repository status check for large repositories 54 | # much, much faster. 55 | # DISABLE_UNTRACKED_FILES_DIRTY="true" 56 | 57 | # Uncomment the following line if you want to change the command execution time 58 | # stamp shown in the history command output. 59 | # You can set one of the optional three formats: 60 | # "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" 61 | # or set a custom format using the strftime function format specifications, 62 | # see 'man strftime' for details. 63 | # HIST_STAMPS="mm/dd/yyyy" 64 | 65 | # Would you like to use another custom folder than $ZSH/custom? 66 | # ZSH_CUSTOM=/path/to/new-custom-folder 67 | 68 | # Which plugins would you like to load? 69 | # Standard plugins can be found in $ZSH/plugins/ 70 | # Custom plugins may be added to $ZSH_CUSTOM/plugins/ 71 | # Example format: plugins=(rails git textmate ruby lighthouse) 72 | # Add wisely, as too many plugins slow down shell startup. 73 | plugins=(git zsh-autosuggestions) 74 | 75 | source $ZSH/oh-my-zsh.sh 76 | 77 | # User configuration 78 | export PATH=/opt/homebrew/bin:$PATH 79 | 80 | # export MANPATH="/usr/local/man:$MANPATH" 81 | 82 | # You may need to manually set your language environment 83 | # export LANG=en_US.UTF-8 84 | 85 | # Preferred editor for local and remote sessions 86 | # if [[ -n $SSH_CONNECTION ]]; then 87 | # export EDITOR='vim' 88 | # else 89 | # export EDITOR='mvim' 90 | # fi 91 | export EDITOR='nvim' 92 | 93 | # Compilation flags 94 | # export ARCHFLAGS="-arch x86_64" 95 | 96 | # ssh 97 | # export SSH_KEY_PATH="~/.ssh/dsa_id" 98 | 99 | # Set personal aliases, overriding those provided by oh-my-zsh libs, 100 | # plugins, and themes. Aliases can be placed here, though oh-my-zsh 101 | # users are encouraged to define aliases within the ZSH_CUSTOM folder. 102 | # For a full list of active aliases, run `alias`. 103 | # 104 | # Example aliases 105 | # alias zshconfig="mate ~/.zshrc" 106 | # alias ohmyzsh="mate ~/.oh-my-zsh" 107 | alias vim="nvim" 108 | alias reload='source ~/.zshrc' 109 | 110 | alias gsync="git checkout master && git fetch upstream && git rebase upstream/master && git push" 111 | alias glog='git log --graph --oneline --decorate --all' 112 | 113 | export PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[pink]%}%D{%T}%{$reset_color%} [$(whoami)] %{$fg_bold[blue]%}%c $(git_prompt_info)% %{$reset_color%}' 114 | 115 | # Setting ag as the default source for fzf 116 | [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh 117 | 118 | export FZF_DEFAULT_COMMAND='ag -g ""' 119 | export FZF_DEFAULT_OPTS='--height 40% --reverse --border' 120 | 121 | export NVM_DIR="$HOME/.nvm" 122 | [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm 123 | [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" 124 | 125 | nosync() { 126 | [[ $# -eq 0 ]] && set -- "node_modules" 127 | 128 | for arg in "$@"; do 129 | xattr -w 'com.apple.fileprovider.ignore#P' 1 "$arg" 130 | done 131 | } 132 | 133 | source ~/.zshrc.local 134 | --------------------------------------------------------------------------------