Browse Source

Update zsh config

Signed-off-by: Ein Verne <[email protected]>
pull/4/head
Ein Verne 5 years ago
parent
commit
6bbb65c604
  1. 13
      .vim/startup/map_vimrc
  2. 19
      .vim/startup/vundle_vimrc
  3. 2
      .vimrc
  4. 172
      .zshrc
  5. 5
      README.md
  6. 13
      bin/git-credit
  7. 8
      bin/git-delete-local-merged
  8. 10
      bin/git-edit-new
  9. 12
      bin/git-nuke
  10. 33
      bin/gitio
  11. 49
      bin/serve
  12. 9
      bin/yt
  13. 13
      conf/zsh/alias.zsh
  14. 9
      conf/zsh/common.zsh
  15. 104
      conf/zsh/env.zsh
  16. 1
      conf/zsh/keybindings.zsh
  17. 16
      init/init_cinnamon_applets.sh
  18. 20
      init/init_install.sh
  19. 0
      init/init_server.sh

13
.vim/startup/map_vimrc

@ -52,10 +52,23 @@ vnoremap <A-k> :m '<-2<CR>gv=gv
" 空格关闭高亮,清空所有已经显示
nnoremap <Space> :set hlsearch! hlsearch?<CR>
" Save a file as root (,W)
noremap <leader>W :w !sudo tee % > /dev/null<CR>
" sudo write
" https://catonmat.net/sudo-vim
cnoremap sudow w !sudo tee % >/dev/null
" Strip trailing whitespace (,ss)
function! StripWhitespace()
let save_cursor = getpos(".")
let old_query = getreg('/')
:%s/\s\+$//e
call setpos('.', save_cursor)
call setreg('/', old_query)
endfunction
noremap <leader>ss :call StripWhitespace()<CR>
set hidden " 避免必须保存修改才可以跳转 buffer
" buffer
"nmap <leader>n :bnext<CR>

19
.vim/startup/vundle_vimrc

@ -182,3 +182,22 @@ let g:ack_autofold_results = 1
let g:auto_save = 1 " enable AutoSave on Vim startup
" An action can be a reference to a function that processes selected lines
function! s:build_quickfix_list(lines)
call setqflist(map(copy(a:lines), '{ "filename": v:val }'))
copen
cc
endfunction
let g:fzf_action = {
\ 'ctrl-q': function('s:build_quickfix_list'),
\ 'ctrl-t': 'tab split',
\ 'ctrl-x': 'split',
\ 'ctrl-v': 'vsplit' }
" Default fzf layout
" - down / up / left / right
let g:fzf_layout = { 'down': '~40%' }
let g:fzf_history_dir = '~/.local/share/fzf-history'

2
.vimrc

@ -162,7 +162,7 @@ set shiftwidth=4
" 将tab自动转为空格
" set expandtab
set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<
set listchars=extends:>,precedes:<,tab:▸\ ,trail,eol,nbsp:_
set list
" spltting a window below

172
.zshrc

@ -1,160 +1,6 @@
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
export EDITOR=vim
#export TERM="screen-256color"
bindkey -e
export NODE_HOME=/usr/local/node-v6.11.4-linux-64/
export PATH="$NODE_HOME/bin/:$PATH"
export PATH="$PATH:$HOME/phabricator/arcanist/bin/"
export ANDROID_HOME="$HOME/Android/Sdk"
export PATH="$PATH:$ANDROID_HOME/bin/"
if [[ -d ~/.pyenv ]]; then
# pyenv
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
fi
# if [[ -d ~/.jenv ]]; then
# # jenv
# export PATH="$HOME/.jenv/bin:$PATH"
# eval "$(jenv init -)"
# fi
# JDK
if [[ -d "/usr/local/jdk1.8.0_131" ]]; then
export JAVA_HOME=/usr/local/jdk1.8.0_131
export PATH=$PATH:$JAVA_HOME/bin/
fi
# export JAVA_HOME="$HOME/.jenv/versions/`jenv version-name`"
# Maven
if [[ -d "/opt/maven" ]]; then
export M2_HOME=/opt/maven
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
fi
# Tomcat
if [[ -d "/opt/tomcat" ]]; then
export CATALINA_HOME=/opt/tomcat/
export PATH=$CATALINE_HOME:$PATH
fi
#
# Hive
if [[ -d "$HOME/apache-hive-2.3.4-bin" ]]; then
export HIVE_HOME=$HOME/apache-hive-2.3.4-bin
export PATH=$PATH:$HIVE_HOME/bin
export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib/*:.
fi
# Hadoop
if [[ -d "$HOME/hadoop/hadoop-2.9.1" ]]; then
export HADOOP_HOME=$HOME/hadoop/hadoop-2.9.1
export HADDOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_SSH_OPTS="-p 222"
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib/*:.
fi
# Derby
if [[ -d "$HOME/db-derby-10.14.2.0-bin" ]]; then
export DERBY_HOME=$HOME/db-derby-10.14.2.0-bin
export PATH=$PATH:$DERBY_HOME/bin
export CLASSPATH=$CLASSPATH:$DERBY_HOME/lib/derby.jar:$DERBY_HOME/lib/derbytools.jar
fi
export GPG_TTY=$(tty)
if [[ -d ~/.rbenv/ ]]; then
# rbenv
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"
fi
if [[ -d ~/.nvm ]]; then
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
fi
if [[ -d /usr/local/go ]]; then
export PATH="$PATH:/usr/local/go/bin"
export GOROOT="/usr/local/go"
fi
# Path to your oh-my-zsh installation.
# export ZSH=$HOME/.oh-my-zsh
# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-zsh is loaded.
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
# ZSH_THEME="agnoster"
# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"
# Uncomment the following line to use hyphen-insensitive completion. Case
# sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"
# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"
# Uncomment the following line to change how often to auto-update (in days).
# export UPDATE_ZSH_DAYS=13
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
# COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# HIST_STAMPS="mm/dd/yyyy"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
#source $ZSH/oh-my-zsh.sh
# you need to git clone [email protected]:zsh-users/antigen.git to $HOME
if [[ -d $HOME/antigen ]]; then
source $HOME/antigen/antigen.zsh
@ -170,6 +16,7 @@ antigen use oh-my-zsh
# Bundles from the default repo (robbyrussell's oh-my-zsh).
antigen bundle git
antigen bundle git-extras
antigen bundle git-flow
antigen bundle mvn
antigen bundle tig
antigen bundle heroku
@ -234,9 +81,6 @@ ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=6'
# export MANPATH="/usr/local/man:$MANPATH"
# You may need to manually set your language environment
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
@ -260,20 +104,14 @@ export LC_ALL=en_US.UTF-8
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
alias tmux="TERM=screen-256color tmux -2"
alias vi="vim"
alias mux="TERM=screen-256color tmuxinator"
#alias ls="ls -alh"
alias cp="cp -i"
alias df="df -h"
alias free="free -m"
alias grep="grep --color=auto"
alias open="xdg-open"
alias ag="ag -i"
#transfer() { if [ $# -eq 0 ]; then echo -e "No arguments specified. Usage:\necho transfer /tmp/test.md\ncat /tmp/test.md | transfer test.md"; return 1; fi
#tmpfile=$( mktemp -t transferXXX ); if tty -s; then basefile=$(basename "$1" | sed -e 's/[^a-zA-Z0-9._-]/-/g'); curl --progress-bar --upload-file "$1" "https://transfer.sh/$basefile" >> $tmpfile; else curl --progress-bar --upload-file "-" "https://transfer.sh/$1" >> $tmpfile ; fi; cat $tmpfile; rm -f $tmpfile; }
source $HOME/dotfiles/conf/zsh/common.zsh
source $HOME/dotfiles/conf/zsh/keybindings.zsh
source $HOME/dotfiles/conf/zsh/alias.zsh
source $HOME/dotfiles/conf/zsh/env.zsh
if [[ -f ~/.zshrc.local ]]; then
source $HOME/.zshrc.local

5
README.md

@ -20,6 +20,11 @@ vim-plug related configuration is under `vim-plug_vimrc`, to show all plugins li
python related configurations is under `python_vimrc`.
## Components
- bin/: executable shell scripts, Anything in bin/ will get added to your $PATH and be made available everywhere.
- conf/: configuration file of zsh etc
## Instruction under Linux
Just run `./install.sh`, everything is done. Then Enter the vim run `:PlugInstall` to install all plugins.

13
bin/git-credit

@ -0,0 +1,13 @@
#!/bin/sh
#
# A very slightly quicker way to credit an author on the latest commit.
#
# $1 - The full name of the author.
# $2 - The email address of the author.
#
# Examples
#
# git credit "Zach Holman" [email protected]
#
git commit --amend --author "$1 <$2>" -C HEAD

8
bin/git-delete-local-merged

@ -0,0 +1,8 @@
#!/bin/sh
#
# Delete all local branches that have been merged into HEAD. Stolen from
# our favorite @tekkub:
#
# https://plus.google.com/115587336092124934674/posts/dXsagsvLakJ
git branch -d `git branch --merged | grep -v '^*' | grep -v 'master' | tr -d '\n'`

10
bin/git-edit-new

@ -0,0 +1,10 @@
#!/bin/sh
#
# Open new, unstaged files in your $EDITOR.
#
# This is nice to have when you run a command line generator which generates a
# file or three in your working directory, and you know you want to immediately
# edit them in your editor next. Why waste time clicking around like some sort
# of plebian when you can just run another command?
$EDITOR $(git ls-files --others --exclude-standard)

12
bin/git-nuke

@ -0,0 +1,12 @@
#!/bin/sh
#
# Nukes a branch locally and on the origin remote.
#
# $1 - Branch name.
#
# Examples
#
# git nuke add-git-nuke
git branch -D $1
git push origin :$1

33
bin/gitio

@ -0,0 +1,33 @@
#!/usr/bin/env ruby
# Usage: gitio URL [CODE]
#
# Turns a github.com URL
# into a git.io URL
#
# Created by @defunkt:
# https://gist.github.com/1209316
#
# Copies the git.io URL to your clipboard.
url = ARGV[0]
code = ARGV[1]
if url !~ /^(https?:\/\/)?(gist\.)?github.com/
abort "* github.com URLs only"
end
if url !~ /^http/
url = "https://#{url}"
end
if code
code = "-F code=#{code}"
end
output = `curl -i https://git.io -F 'url=#{url}' #{code} 2> /dev/null`
if output =~ /Location: (.+)\n?/
puts $1
`echo #$1 | pbcopy`
else
puts output
end

49
bin/serve

@ -0,0 +1,49 @@
#!/usr/bin/env python
import sys, os
import SimpleHTTPServer
args = sys.argv[1:]
if len(args) and (args[0] == "-h" or args[0] == "--help"):
print """
Serve a file (or the current directory)
http://benalman.com/
Usage: %s [PORT] [FILE]
If a port isn't specified, use 8080. If a file isn't specified, serve the
current directory. Once started, open the specified file (or the current
directory) with the default web browser.
Copyright (c) 2012 "Cowboy" Ben Alman
Licensed under the MIT license.
http://benalman.com/about/license/""" % os.path.basename(sys.argv[0])
sys.exit()
# Get port, if specified.
port = 8080
if len(args) and args[0].isdigit():
port = int(args[0])
args = args[1:] # Shift args.
# Get file, if specified.
file = args[0] if len(args) else ""
# If not in an SSH session, open the URL in the default handler.
if not "SSH_TTY" in os.environ:
os.system("open 'http://localhost:%d/%s'" % (port, file))
# Redefining the default content-type to text/plain instead of the default
# application/octet-stream allows "unknown" files to be viewable in-browser
# as text instead of being downloaded, which makes me happy.
extensions_map = SimpleHTTPServer.SimpleHTTPRequestHandler.extensions_map
# Set the default content type to text/plain.
extensions_map[""] = "text/plain"
# Serving everything as UTF-8 by default makes funky characters render
# correctly and shouldn't break anything (per Mathias Bynens).
for key, value in extensions_map.items():
extensions_map[key] = value + "; charset=UTF-8"
# Start the server using the default .test method, because I'm lazy (the port
# is still grabbed from sys.argv[1]).
sys.argv = [sys.argv[0], port]
SimpleHTTPServer.test()

9
bin/yt

@ -0,0 +1,9 @@
#!/bin/sh
#
# Downloads the embedded video on any web page straight to the desktop.
#
# youtube-dl, which is awesome:
# https://rg3.github.io/youtube-dl/
#
cd ~/Videos && youtube-dl "$1"

13
conf/zsh/alias.zsh

@ -0,0 +1,13 @@
alias tmux="TERM=screen-256color tmux -2"
alias vi="vim"
alias mux="TERM=screen-256color tmuxinator"
#alias ls="ls -alh"
alias cp="cp -i"
alias df="df -h"
alias free="free -m"
alias grep="grep --color=auto"
alias open="xdg-open"
alias ag="ag -i"
alias mkdir="mkdir -p"
alias e=$EDITOR

9
conf/zsh/common.zsh

@ -0,0 +1,9 @@
setopt histignorealldups sharehistory
# Keep history within the shell and save it to ~/.zsh_history:
HISTSIZE=10000
SAVEHIST=10000
HISTFILE=~/.zsh_history

104
conf/zsh/env.zsh

@ -0,0 +1,104 @@
# You may need to manually set your language environment
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export EDITOR=vim
#export TERM="screen-256color"
export NODE_HOME=/usr/local/node-v6.11.4-linux-64/
export PATH="$NODE_HOME/bin/:$PATH"
export PATH="$PATH:$HOME/phabricator/arcanist/bin/"
export ANDROID_HOME="$HOME/Android/Sdk"
export PATH="$PATH:$ANDROID_HOME/bin/"
if [[ -d ~/.pyenv ]]; then
# pyenv
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
fi
# if [[ -d ~/.jenv ]]; then
# # jenv
# export PATH="$HOME/.jenv/bin:$PATH"
# eval "$(jenv init -)"
# fi
# JDK
if [[ -d "/usr/local/jdk1.8.0_131" ]]; then
export JAVA_HOME=/usr/local/jdk1.8.0_131
export PATH=$PATH:$JAVA_HOME/bin/
fi
# export JAVA_HOME="$HOME/.jenv/versions/`jenv version-name`"
# Maven
if [[ -d "/opt/maven" ]]; then
export M2_HOME=/opt/maven
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
fi
# Tomcat
if [[ -d "/opt/tomcat" ]]; then
export CATALINA_HOME=/opt/tomcat/
export PATH=$CATALINE_HOME:$PATH
fi
#
# Hive
if [[ -d "$HOME/apache-hive-2.3.4-bin" ]]; then
export HIVE_HOME=$HOME/apache-hive-2.3.4-bin
export PATH=$PATH:$HIVE_HOME/bin
export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib/*:.
fi
# Hadoop
if [[ -d "$HOME/hadoop/hadoop-2.9.1" ]]; then
export HADOOP_HOME=$HOME/hadoop/hadoop-2.9.1
export HADDOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_SSH_OPTS="-p 222"
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib/*:.
fi
# Derby
if [[ -d "$HOME/db-derby-10.14.2.0-bin" ]]; then
export DERBY_HOME=$HOME/db-derby-10.14.2.0-bin
export PATH=$PATH:$DERBY_HOME/bin
export CLASSPATH=$CLASSPATH:$DERBY_HOME/lib/derby.jar:$DERBY_HOME/lib/derbytools.jar
fi
export GPG_TTY=$(tty)
if [[ -d ~/.rbenv/ ]]; then
# rbenv
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"
fi
if [[ -d ~/.nvm ]]; then
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
fi
if [[ -d /usr/local/go ]]; then
export PATH="$PATH:/usr/local/go/bin"
export GOROOT="/usr/local/go"
fi

1
conf/zsh/keybindings.zsh

@ -0,0 +1 @@
bindkey -e

16
init/init_cinnamon_applets.sh

@ -0,0 +1,16 @@
#!/bin/bash -
set -o nounset # Treat unset variables as an error
DESKTOP_CAPTURE=v1.17
# desktop capture
sudo apt install -y byzanz
TEMP_FORLDER=capture
wget https://github.com/rjanja/desktop-capture/archive/${DESKTOP_CAPTURE}.tar.gz
mkdir -p ${TEMP_FORLDER}
tar xzvf ${DESKTOP_CAPTURE}.tar.gz -C ${TEMP_FORLDER}
mv -v ${TEMP_FORLDER}/capture@rjanja ~/.local/share/cinnamon/applets/
rm -rf ${DESKTOP_CAPTURE}.tar.gz
rm -rf ${TEMP_FORLDER}

20
init_install.sh → init/init_install.sh

@ -1,28 +1,10 @@
#!/bin/bash -
#===============================================================================
#
# FILE: init_install.sh
#
# USAGE: ./init_install.sh
#
# DESCRIPTION:
#
# OPTIONS: ---
# REQUIREMENTS: ---
# BUGS: ---
# NOTES: ---
# AUTHOR: YOUR NAME (),
# ORGANIZATION:
# CREATED: 12/07/2017 08:47:13 PM
# REVISION: ---
#===============================================================================
set -o nounset # Treat unset variables as an error
# install
sudo apt-get install zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
chsh -s /bin/zsh
chsh -s $(which zsh)
# pyenv
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash

0
init_server.sh → init/init_server.sh

Loading…
Cancel
Save