Initial commit.
This commit is contained in:
1
config/config
Symbolic link
1
config/config
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/Users/chun/dotfiles/config
|
||||||
3
config/fish/config.fish
Normal file
3
config/fish/config.fish
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function fish_greeting
|
||||||
|
echo "Hello World"
|
||||||
|
end
|
||||||
31
config/fish/fishd.6c4008c0f732
Normal file
31
config/fish/fishd.6c4008c0f732
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# This file is automatically generated by the fish.
|
||||||
|
# Do NOT edit it directly, your changes will be overwritten.
|
||||||
|
SET __fish_init_2_39_8:\x1d
|
||||||
|
SET __fish_init_2_3_0:\x1d
|
||||||
|
SET fish_color_autosuggestion:555\x1ebrblack
|
||||||
|
SET fish_color_cancel:\x2dr
|
||||||
|
SET fish_color_command:\x2d\x2dbold
|
||||||
|
SET fish_color_comment:red
|
||||||
|
SET fish_color_cwd:green
|
||||||
|
SET fish_color_cwd_root:red
|
||||||
|
SET fish_color_end:brmagenta
|
||||||
|
SET fish_color_error:brred
|
||||||
|
SET fish_color_escape:bryellow\x1e\x2d\x2dbold
|
||||||
|
SET fish_color_history_current:\x2d\x2dbold
|
||||||
|
SET fish_color_host:normal
|
||||||
|
SET fish_color_match:\x2d\x2dbackground\x3dbrblue
|
||||||
|
SET fish_color_normal:normal
|
||||||
|
SET fish_color_operator:bryellow
|
||||||
|
SET fish_color_param:cyan
|
||||||
|
SET fish_color_quote:yellow
|
||||||
|
SET fish_color_redirection:brblue
|
||||||
|
SET fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
|
||||||
|
SET fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
||||||
|
SET fish_color_user:brgreen
|
||||||
|
SET fish_color_valid_path:\x2d\x2dunderline
|
||||||
|
SET fish_greeting:Welcome\x20to\x20fish\x2c\x20the\x20friendly\x20interactive\x20shell
|
||||||
|
SET fish_key_bindings:fish_default_key_bindings
|
||||||
|
SET fish_pager_color_completion:\x1d
|
||||||
|
SET fish_pager_color_description:B3A06D\x1eyellow
|
||||||
|
SET fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||||
|
SET fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
||||||
1
config/nvim/init.vim
Symbolic link
1
config/nvim/init.vim
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../vimrc
|
||||||
55
gitconfig
Normal file
55
gitconfig
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
[user]
|
||||||
|
name = Chun Li
|
||||||
|
email = chunli.developer@gmail.com
|
||||||
|
|
||||||
|
[alias]
|
||||||
|
hist = log --pretty=oneline --graph --decorate --all --abbrev-commit
|
||||||
|
diff = --ignore-space-change
|
||||||
|
pretty = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
|
||||||
|
st = status
|
||||||
|
ci = commit
|
||||||
|
br = branch -v
|
||||||
|
co = checkout
|
||||||
|
df = diff
|
||||||
|
ds = diff --staged
|
||||||
|
lg = log -p
|
||||||
|
lol = log --graph --decorate --pretty=oneline --abbrev-commit
|
||||||
|
lola = log --graph --decorate --pretty=oneline --abbrev-commit --all --date=local
|
||||||
|
ls = ls-files
|
||||||
|
unstage = reset HEAD
|
||||||
|
out = "!git log origin/master..$(git rev-parse --abbrev-ref HEAD)"
|
||||||
|
in = "!git log $(git rev-parse --abbrev-ref HEAD)..origin/master"
|
||||||
|
pull = pull --ff-only
|
||||||
|
merge = merge --ff-only
|
||||||
|
|
||||||
|
# Show files ignored by git:
|
||||||
|
ign = ls-files -o -i --exclude-standard
|
||||||
|
|
||||||
|
[color]
|
||||||
|
branch = auto
|
||||||
|
diff = auto
|
||||||
|
interactive = auto
|
||||||
|
status = auto
|
||||||
|
|
||||||
|
[core]
|
||||||
|
editor = /usr/bin/vim
|
||||||
|
precomposeunicode = true
|
||||||
|
|
||||||
|
[merge]
|
||||||
|
tool = Opendiff
|
||||||
|
[mergetool]
|
||||||
|
keepBackup = false
|
||||||
|
prompt = false
|
||||||
|
[mergetool "Opendiff"]
|
||||||
|
cmd = opendiff \"$LOCAL\" \"$REMOTE\" --merge \"$MERGED\"
|
||||||
|
trustexitcode = true
|
||||||
|
[diff]
|
||||||
|
tool = Opendiff
|
||||||
|
[pull]
|
||||||
|
ff = only
|
||||||
|
[push]
|
||||||
|
default = simple
|
||||||
|
[difftool]
|
||||||
|
prompt = false
|
||||||
|
[difftool "Opendiff"]
|
||||||
|
cmd = opendiff \"$LOCAL\" \"$REMOTE\"
|
||||||
10
install.sh
Executable file
10
install.sh
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
DOTFILES=$(pwd)
|
||||||
|
ln -si $DOTFILES/vimrc ~/.vimrc
|
||||||
|
ln -si $DOTFILES/agignore ~/.agignore
|
||||||
|
ln -si $DOTFILES/gitconfig ~/.gitconfig
|
||||||
|
ln -si $DOTFILES/profile ~/.profile
|
||||||
|
ln -si $DOTFILES/vimrc.bundles ~/.vimrc.bundles
|
||||||
|
ln -si $DOTFILES/tmux.conf ~/.tmux.conf
|
||||||
|
ln -si $DOTFILES/config ~/.config
|
||||||
3
profile
Normal file
3
profile
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[ -n "$PROFILE" ] && return || readonly PROFILE=1
|
||||||
|
|
||||||
|
export PATH="$HOME/.cargo/bin:$PATH"
|
||||||
99
tmux.conf
Normal file
99
tmux.conf
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
# use C-a, since it's on the home row and easier to hit than C-b
|
||||||
|
set-option -g prefix C-a
|
||||||
|
unbind-key C-a
|
||||||
|
bind-key C-a send-prefix
|
||||||
|
set -g base-index 1
|
||||||
|
|
||||||
|
# Easy config reload
|
||||||
|
bind-key R source-file ~/.tmux.conf \; display-message "tmux.conf reloaded."
|
||||||
|
|
||||||
|
# vi is good
|
||||||
|
set-window-option -g mode-keys vi
|
||||||
|
# set copy hotkeys
|
||||||
|
bind-key -T copy-mode-vi 'v' send -X begin-selection
|
||||||
|
bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel
|
||||||
|
|
||||||
|
# mouse behavior
|
||||||
|
set -g mouse on
|
||||||
|
|
||||||
|
set-option -g default-terminal screen-256color
|
||||||
|
|
||||||
|
bind-key : command-prompt
|
||||||
|
bind-key r refresh-client
|
||||||
|
bind-key L clear-history
|
||||||
|
|
||||||
|
bind-key space next-window
|
||||||
|
bind-key bspace previous-window
|
||||||
|
bind-key enter next-layout
|
||||||
|
|
||||||
|
# use vim-like keys for splits and windows
|
||||||
|
bind-key v split-window -h -c "#{pane_current_path}"
|
||||||
|
bind-key s split-window -v -c "#{pane_current_path}"
|
||||||
|
bind-key h select-pane -L
|
||||||
|
bind-key j select-pane -D
|
||||||
|
bind-key k select-pane -U
|
||||||
|
bind-key l select-pane -R
|
||||||
|
|
||||||
|
# uncomment below stanza to enable smart pane switching with awareness of vim splits
|
||||||
|
# bind -n C-h run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim$' && tmux send-keys C-h) || tmux select-pane -L"
|
||||||
|
# bind -n C-j run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim$' && tmux send-keys C-j) || tmux select-pane -D"
|
||||||
|
# bind -n C-k run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim$' && tmux send-keys C-k) || tmux select-pane -U"
|
||||||
|
# bind -n C-l run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim$' && tmux send-keys C-l) || tmux select-pane -R"
|
||||||
|
# bind -n C-\ run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim$' && tmux send-keys 'C-\\') || tmux select-pane -l"
|
||||||
|
# bind C-l send-keys 'C-l'
|
||||||
|
|
||||||
|
bind-key C-o rotate-window
|
||||||
|
|
||||||
|
bind-key + select-layout main-horizontal
|
||||||
|
bind-key = select-layout main-vertical
|
||||||
|
set-window-option -g other-pane-height 25
|
||||||
|
set-window-option -g other-pane-width 80
|
||||||
|
|
||||||
|
bind-key a last-pane
|
||||||
|
bind-key q display-panes
|
||||||
|
bind-key c new-window
|
||||||
|
bind-key t next-window
|
||||||
|
bind-key T previous-window
|
||||||
|
|
||||||
|
bind-key [ copy-mode
|
||||||
|
bind-key ] paste-buffer
|
||||||
|
|
||||||
|
set-window-option -g display-panes-time 1500
|
||||||
|
|
||||||
|
# Status Bar
|
||||||
|
set-option -g status-interval 1
|
||||||
|
set-option -g status-left ''
|
||||||
|
set-option -g status-right '%l:%M%p'
|
||||||
|
set-window-option -g window-status-current-fg magenta
|
||||||
|
set-option -g status-fg default
|
||||||
|
|
||||||
|
# Status Bar solarized-dark (default)
|
||||||
|
set-option -g status-bg black
|
||||||
|
set-option -g pane-active-border-fg black
|
||||||
|
set-option -g pane-border-fg black
|
||||||
|
|
||||||
|
# Status Bar solarized-light
|
||||||
|
if-shell "[ \"$COLORFGBG\" = \"11;15\" ]" "set-option -g status-bg white"
|
||||||
|
if-shell "[ \"$COLORFGBG\" = \"11;15\" ]" "set-option -g pane-active-border-fg white"
|
||||||
|
if-shell "[ \"$COLORFGBG\" = \"11;15\" ]" "set-option -g pane-border-fg white"
|
||||||
|
|
||||||
|
# Set window notifications
|
||||||
|
setw -g monitor-activity on
|
||||||
|
set -g visual-activity on
|
||||||
|
|
||||||
|
# Enable native Mac OS X copy/paste
|
||||||
|
set-option -g default-command "/bin/bash -c 'which reattach-to-user-namespace >/dev/null && exec reattach-to-user-namespace $SHELL -l || exec $SHELL -l'"
|
||||||
|
|
||||||
|
# Allow the arrow key to be used immediately after changing windows
|
||||||
|
set-option -g repeat-time 0
|
||||||
|
|
||||||
|
# Fix to allow mousewheel/trackpad scrolling in tmux 2.1
|
||||||
|
bind-key -T root WheelUpPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; copy-mode -e; send-keys -M"
|
||||||
|
bind-key -T root WheelDownPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; send-keys -M"
|
||||||
|
|
||||||
|
# Disable assume-paste-time, so that iTerm2's "Send Hex Codes" feature works
|
||||||
|
# with tmux 2.1. This is backwards-compatible with earlier versions of tmux,
|
||||||
|
# AFAICT.
|
||||||
|
set-option -g assume-paste-time 0
|
||||||
|
|
||||||
|
source-file ~/.tmux.conf.local
|
||||||
117
vimrc
Normal file
117
vimrc
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
""" vim config
|
||||||
|
""" Author: Chun Li
|
||||||
|
|
||||||
|
|
||||||
|
""" PLUGINS
|
||||||
|
call plug#begin('~/.local/share/nvim/plugged')
|
||||||
|
if filereadable(expand("~/.vimrc.bundles"))
|
||||||
|
source ~/.vimrc.bundles
|
||||||
|
endif
|
||||||
|
call plug#end()
|
||||||
|
|
||||||
|
" Plugin settings
|
||||||
|
let g:ctrlp_match_window = 'order:ttb,max:20'
|
||||||
|
let g:NERDSpaceDelims=1
|
||||||
|
let g:gitgutter_enabled = 0
|
||||||
|
|
||||||
|
" Use The Silver Searcher https://github.com/ggreer/the_silver_searcher
|
||||||
|
if executable('ag')
|
||||||
|
" Use Ag over Grep
|
||||||
|
set grepprg=ag\ --nogroup\ --nocolor
|
||||||
|
|
||||||
|
" Use ag in CtrlP for listing files. Lightning fast and respects .gitignore
|
||||||
|
let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""'
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
""" SET CONFIGS
|
||||||
|
" enable syntax highlighting
|
||||||
|
syntax enable
|
||||||
|
filetype plugin indent on
|
||||||
|
set autoindent
|
||||||
|
set autoread " reload files when changed on disk, i.e. via `git checkout`
|
||||||
|
set backspace=2 " Fix broken backspace in some setups
|
||||||
|
set backupcopy=yes " see :help crontab
|
||||||
|
set cc=100 " color column
|
||||||
|
set clipboard=unnamed " yank and paste with the system clipboard
|
||||||
|
set directory-=. " don't store swapfiles in the current directory
|
||||||
|
set encoding=utf-8
|
||||||
|
set expandtab " expand tabs to spaces
|
||||||
|
set hlsearch " set highlight search
|
||||||
|
set ignorecase " case-insensitive search
|
||||||
|
set incsearch " search as you type
|
||||||
|
set laststatus=2 " always show statusline
|
||||||
|
set list " show trailing whitespace
|
||||||
|
set listchars=tab:▸\ ,trail:▫
|
||||||
|
set mouse=a " Enable basic mouse behavior such as resizing buffers.
|
||||||
|
set nocompatible " don't bother with vi compatibility
|
||||||
|
set number " show line numbers
|
||||||
|
set ruler " show where you are
|
||||||
|
set scrolloff=3 " show context above/below cursorline
|
||||||
|
set shiftwidth=4 " normal mode indentation commands use 4 spaces
|
||||||
|
set showcmd
|
||||||
|
set smartcase " case-sensitive search if any caps
|
||||||
|
set softtabstop=4 " insert mode tab and backspace use 4 spaces
|
||||||
|
set tabstop=4 " actual tabs occupy 4 characters
|
||||||
|
set wildignore=log/**,node_modules/**,target/**,tmp/**,*.rbc
|
||||||
|
set wildmenu " show a navigable menu for tab completion
|
||||||
|
set wildmode=longest,list,full
|
||||||
|
|
||||||
|
|
||||||
|
""" MAPPINGS
|
||||||
|
" keyboard shortcuts
|
||||||
|
let mapleader = ','
|
||||||
|
" buffer navigation
|
||||||
|
noremap <C-h> <C-w>h
|
||||||
|
noremap <C-j> <C-w>j
|
||||||
|
noremap <C-k> <C-w>k
|
||||||
|
noremap <C-l> <C-w>l
|
||||||
|
" plugins
|
||||||
|
nnoremap <leader>a :Ag<space>
|
||||||
|
nnoremap <leader>b :CtrlPBuffer<CR>
|
||||||
|
nnoremap <leader>d :NERDTreeToggle<CR>
|
||||||
|
nnoremap <leader>f :NERDTreeFind<CR>
|
||||||
|
nnoremap <leader>t :CtrlP<CR>
|
||||||
|
nnoremap <leader>T :CtrlPClearCache<CR>:CtrlP<CR>
|
||||||
|
nnoremap <leader>] :TagbarToggle<CR>
|
||||||
|
nnoremap <leader><space> :call whitespace#strip_trailing()<CR>
|
||||||
|
nnoremap <leader>g :GitGutterToggle<CR>
|
||||||
|
noremap <leader><tab> :set list!<CR>
|
||||||
|
noremap <silent> <leader>V :source ~/.vimrc<CR>:filetype detect<CR>:exe ":echo 'vimrc reloaded'"<CR>
|
||||||
|
" tab creation
|
||||||
|
:map <C-t> :tabe<CR>
|
||||||
|
:imap <C-t> <ESC>:tabe<CR>
|
||||||
|
:vmap <C-t> <ESC>:tabe<CR>
|
||||||
|
" tabbing
|
||||||
|
:nmap <tab> >>
|
||||||
|
:nmap <S-tab> <<
|
||||||
|
:vmap <tab> >
|
||||||
|
:vmap <S-tab> <
|
||||||
|
" in case you forgot to sudo
|
||||||
|
cnoremap w!! %!sudo tee > /dev/null %
|
||||||
|
|
||||||
|
|
||||||
|
""" FILETYPES
|
||||||
|
" fdoc is yaml
|
||||||
|
autocmd BufRead,BufNewFile *.fdoc set filetype=yaml
|
||||||
|
" md is markdown
|
||||||
|
autocmd BufRead,BufNewFile *.md set filetype=markdown
|
||||||
|
autocmd BufRead,BufNewFile *.md set spell
|
||||||
|
|
||||||
|
|
||||||
|
""" FIXES
|
||||||
|
" automatically rebalance windows on vim resize
|
||||||
|
autocmd VimResized * :wincmd =
|
||||||
|
if exists('$TMUX') " Support resizing in tmux
|
||||||
|
set ttymouse=xterm2
|
||||||
|
endif
|
||||||
|
" Fix Cursor in TMUX
|
||||||
|
if exists('$TMUX')
|
||||||
|
let &t_SI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=1\x7\<Esc>\\"
|
||||||
|
let &t_EI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=0\x7\<Esc>\\"
|
||||||
|
else
|
||||||
|
let &t_SI = "\<Esc>]50;CursorShape=1\x7"
|
||||||
|
let &t_EI = "\<Esc>]50;CursorShape=0\x7"
|
||||||
|
endif
|
||||||
|
" Don't copy the contents of an overwritten selection.
|
||||||
|
vnoremap p "_dP
|
||||||
10
vimrc.bundles
Normal file
10
vimrc.bundles
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Plug 'airblade/vim-gitgutter'
|
||||||
|
Plug 'ctrlpvim/ctrlp.vim'
|
||||||
|
Plug 'flazz/vim-colorschemes'
|
||||||
|
Plug 'majutsushi/tagbar'
|
||||||
|
Plug 'rking/ag.vim'
|
||||||
|
Plug 'scrooloose/nerdtree'
|
||||||
|
Plug 'tpope/vim-sensible'
|
||||||
|
Plug 'tpope/vim-commentary'
|
||||||
|
Plug 'tpope/vim-fugitive'
|
||||||
|
Plug 'vim-airline/vim-airline'
|
||||||
Reference in New Issue
Block a user