Setup git, vim, zsh, tmux etc. using one command
git clone --depth 1 https://github.com/Wyntau/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
All vailable tasks:
You can do a specific task by run
./install.sh <taskname1>[ <taskname2> <tasknameN> ...]
editorconfig
Install global .editorconfig
to you home. You can see
what config is used.
emacs
Requirement(s): git
, emacs
Install emacs config to your ~/.emacs.d
.
emacs_spacemacs
Requirement(s): git
, emacs
Install popular spacemacs for your emacs.
fonts_source_code_pro
Requirement(s): git
This task will install Source Code Pro font for you.
The new version font is compatible with powerline fonts which have some useful symbols used in some vim plugins and shell plugins, and it will update frequently. So use it to replace Powerline fonts.
This font will be installed automatically when do task emacs_spacemacs and vim_plugins.
git_alias
Requirement(s): git
Install gitalias
for git. gitalias has many useful alias.
git_config
Requirement(s): git
This task will ask you what username and email you want to config global for git.
git_diff_so_fancy
Requirement(s): git
Install diff-so-fancy
plugin for git. Please see diff-so-fancy
If you use zsh, you can try the zsh plugin version task zsh_omz_plugins_git_diff_so_fancy or task zsh_zim_plugins_git_diff_so_fancy
git_dmtool
Requirement(s): MAC
, git
, Kaleidoscope
(ksdiff
)
Config git's difftool and mergetool to Kaleidoscope.
Kaleidoscope is a sooooo excellent diff and merge tool
git_extras
Requirement(s): git
Install git-extras
plugin for git. git-extras( Linux, OS X ) has some
useful tools for git.
git_flow
Requirement(s): git
Install git-flow
plugin for git.
A post about git-flow: a-successful-git-branching-model
homebrew
Requirement(s): curl
Install homebrew for OS X and Linux(aka. linuxbrew on Linux).
tmux
Requirement(s): git
, tmux
tmux plugins
vim_rc
Requirement(s): git
, vim
This task will not install any plugin, if you want to use some plugins, do task vim_plugins.
You can override the system vim with the new one installed by homebrew
.
(OS X only. This is optional, but recommended, because system vim can't use
system clipbord via register +
).
brew install macvim --with-override-system-vim
And then add the new vim PATH into your $PATH
.
Additionally, if you have installed neovim
, this task will link vim
to
~/.nvim
, vim/vimrc
to ~/.nvimrc
.
You can add your custom configs or override dotvim configs in ~/.vimrc.local
.
vim_plugins
Requirement(s): git
, vim
, task vim_rc
Setup vim-plug, and load other plugins.
We have some dotvim_group below.
In above dotvim_groups, only themes
and interface
will be loaded default.
You can add already defined dotvim_group above in ~/.vimrc.plugins.before
like below.
" load some plugins groups
let g:dotvim_groups = ['explorer', 'git', 'js']
You can also add a virtual group common
to g:dotvim_groups
to include
all groups, and then use -*
syntax to exclude some ones like below.
" include groups except git
let g:dotvim_groups = ['common', '-git']
If you want to override some plugin configs or to use some other plugins, you
can add them in ~/.vimrc.plugins.local
like below.
" load your custom plugins in ~/.vimrc.plugins.local
" Plug 'name/repo'
" or override plugin configs already defined in ~/.vimrc.plugins
" let g:some_config = 'value'
The load order for the configuration is:
.vimrc
- dotvim configs.vimrc.plugins.before
- user's dotvim_groups define.vimrc.plugins
- dotvim plugins and plugin configs.vimrc.plugins.local
- user's custom plugins and plugin configs.vimrc.local
- user's custom configs" group 'themes'
Plug 'tomasr/molokai'
Plug 'altercation/vim-colors-solarized'
Plug 'morhetz/gruvbox'
Plug 'junegunn/seoul256.vim'
Plug 'zeis/vim-kolor'
" group 'interface'
Plug 'vim-airline/vim-airline'
Plug 'Yggdroot/indentLine'
" group 'explorer'
Plug 'schickling/vim-bufonly'
Plug 'ctrlpvim/ctrlp.vim'
Plug 'tacahiroy/ctrlp-funky'
Plug 'scrooloose/nerdtree'
Plug 'Xuyuanp/nerdtree-git-plugin'
Plug 'dyng/ctrlsf.vim'
Plug 't9md/vim-choosewin'
" group 'motion'
Plug 'justinmk/vim-sneak'
Plug 'unblevable/quick-scope'
Plug 'haya14busa/incsearch.vim'
Plug 'easymotion/vim-easymotion'
Plug 'haya14busa/incsearch-easymotion.vim'
Plug 'kshenoy/vim-signature'
Plug 'terryma/vim-expand-region'
Plug 't9md/vim-textmanip'
" group 'writing'
Plug 'ntpeters/vim-better-whitespace'
Plug 'Raimondi/delimitMate'
Plug 'junegunn/vim-easy-align'
Plug 'wellle/targets.vim'
Plug 'tpope/vim-surround'
Plug 'tpope/vim-repeat'
Plug 'scrooloose/nerdcommenter'
Plug 'terryma/vim-multiple-cursors'
Plug 'osyo-manga/vim-over'
" group 'git'
Plug 'airblade/vim-gitgutter'
" group 'syntastic'
Plug 'scrooloose/syntastic'
" group 'tmux'
Plug 'tmux-plugins/vim-tmux'
Plug 'tmux-plugins/vim-tmux-focus-events'
Plug 'christoomey/vim-tmux-navigator'
" group 'html'
Plug 'tmhedberg/matchit'
Plug 'mattn/emmet-vim'
" group 'css'
Plug 'groenewege/vim-less'
Plug 'hail2u/vim-css3-syntax'
Plug 'Marslo/vim-coloresque'
" group 'js'
Plug 'leafgarland/typescript-vim'
Plug 'kchmck/vim-coffee-script'
Plug 'pangloss/vim-javascript'
Plug 'mxw/vim-jsx'
Plug 'othree/yajs.vim'
Plug 'heavenshell/vim-jsdoc'
Plug 'mtscout6/syntastic-local-eslint.vim'
" group 'php'
Plug 'SirVer/ultisnips'
Plug 'tobyS/vmustache'
Plug 'tobyS/pdv'
" group 'markdown'
Plug 'godlygeek/tabular'
Plug 'plasticboy/vim-markdown'
" group 'nginx'
Plug 'evanmiller/nginx-vim-syntax'
vim_plugins_fcitx
Requirement(s): git
, vim
, task vim_plugins
Install fcitx support plugin for vim. This plugin help you to switch input
method(eg. English and Chinese keyboard) automatically when you switch vim
Insert
and Normal
mode.
" group 'fcitx'
Plug 'CodeFalling/fcitx-vim-osx'
vim_plugins_matchtag
Requirement(s): git
, vim
, curl
, python
,
task vim_plugins
Install html matchtag plugin for vim. Here i use python version matchtag. If you don't want to include python modules, you can also use non-python version 'gregsexton/MatchTag'
" group 'matchtag'
Plug 'valloric/MatchTagAlways'
vim_plugins_snippets
Requirement(s): git
, vim
, curl
, python
,
task vim_plugins
Install vim-snippets plugin for vim.
" group 'snippets'
Plug 'SirVer/ultisnips'
Plug 'honza/vim-snippets'
vim_plugins_ycm
Requirement(s): git
, vim
, curl
, python
,
task vim_plugins
Install YouCompleteMe plugin for vim.
If YouCompleteMe lib files not exist, or you force YouCompleteMe to
recompile with export YCM_COMPILE_FORCE=true
, YouCompleteMe lib files
will be compiled automatically.
Also you can set YCM_COMPLETER_FLAG
with different language support.
e.g.
YCM_COMPLETER_FLAG="--tern-completer" ./install.sh vim_plugins_ycm
If you want to enable --tern-completer
support, You may want to have node
and npm
installed and .tern-project
config file in you project or
$HOME
directory.
" group 'youcompleteme'
Plug 'Valloric/YouCompleteMe'
zsh_omz
Requirement(s): git
, zsh
This task will install oh-my-zsh
for you.
If you have your own configs, put them in ~/.zshrc.local
, zsh will load
them automatically.
What zsh plugins are used?
plugin | require | note |
---|---|---|
colored-man-pages | ||
encode64 | ||
extract | ||
fzf | task zsh_omz_plugins_fzf | |
sudo | ||
zsh_reload | ||
zsh-syntax-highlighting | ||
history-substring-search | ||
zsh-autosuggestions | disabled in Emacs eshell. TIP: If your auto suggestion's color is same with your normal command's color, please make sure you $TERM support 256 color! |
|
fasd(z) | task zsh_plugins_fasd | z is used otherwise when fasd is not installed |
git | git | |
gitfast | git | |
diff-so-fancy | task zsh_omz_plugins_git_diff_so_fancy | |
git-extras | task git_extras | |
git-flow | task git_flow | |
git-flow-completion | task git_flow | |
httpie | httpie | |
mosh | mosh | |
thefuck | task zsh_omz_plugins_thefuck | |
tmux | tmux | |
z.lua | task zsh_omz_plugins_zlua | |
osx | OS X |
So, maybe you should install some of them to make full use of zsh.
zsh_omz_plugins_fzf
Requirement(s): git
, zsh
, task zsh_omz
Install oh-my-zsh plugin fzf
zsh_omz_plugins_git_diff_so_fancy
Requirement(s): git
, zsh
, task zsh_omz
Install oh-my-zsh plugin zsh-diff-so-fancy for git diff-so-fancy
zsh_omz_plugins_thefuck
Requirement(s): git
, zsh
, task zsh_omz
Install oh-my-zsh plugin thefuck
zsh_omz_plugins_zlua
Requirement(s): git
, zsh
, lua
Install zsh plugin z.lua
zsh_plugins_fasd
Requirement(s): git
, zsh
Install zsh plugin fasd
zsh_zim
Requirement(s): git
, zsh
This task will install zimfw
for you.
If you have your own configs, put them in ~/.zimrc.local
, zsh will load
them automatically.
zsh_zim_plugins_fzf
Requirement(s): git
, zsh
, curl
Install oh-my-zsh plugin fzf
for zim.
zsh_zim_plugins_git_diff_so_fancy
Requirement(s): git
, zsh
, task zsh_zim
Install zimfw plugin zsh-diff-so-fancy for git diff-so-fancy
zsh_zim_plugins_omz_tmux
Requirement(s): git
, zsh
, tmux
Iinstall the tmux plugin(oh-my-zsh/plugins/tmux
) included in oh-my-zsh for zimfw.
zsh_zim_plugins_pure
Requirement(s): git
, zsh
Install zsh prompt theme pure for zimfw
zsh_zim_plugins_zlua
Requirement(s): git
, zsh
, lua
Install zsh plugin z.lua
for zimfw
The MIT License (MIT)
Copyright (c) 2013 - present Wyntau [email protected]
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.