Browse Source

Update fzf

Signed-off-by: Ein Verne <[email protected]>
pull/4/head
Ein Verne 5 years ago
parent
commit
78d76b008d
  1. 3
      .vim/startup/vundle_vimrc
  2. 118
      .zshrc
  3. 10
      README.md
  4. 18
      tmux/.tmux.conf
  5. 38
      ubuntu_init.sh

3
.vim/startup/vundle_vimrc

@ -56,7 +56,7 @@ Plug 'ekalinin/Dockerfile.vim'
Plug 'hotoo/pangu.vim' Plug 'hotoo/pangu.vim'
Plug 'chr4/nginx.vim' Plug 'chr4/nginx.vim'
Plug 'mileszs/ack.vim' Plug 'mileszs/ack.vim'
Plug 'jlanzarotta/bufexplorer' " Plug 'jlanzarotta/bufexplorer'
Plug 'mikelue/vim-maven-plugin' Plug 'mikelue/vim-maven-plugin'
" Plug 'w0rp/ale' " Plug 'w0rp/ale'
@ -66,6 +66,7 @@ Plug 'tomtom/tlib_vim'
Plug 'garbas/vim-snipmate' Plug 'garbas/vim-snipmate'
Plug 'ntpeters/vim-better-whitespace' Plug 'ntpeters/vim-better-whitespace'
Plug '907th/vim-auto-save' Plug '907th/vim-auto-save'
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': '.install -all'}
Plug 'junegunn/fzf.vim' Plug 'junegunn/fzf.vim'
" Git plugin not hosted on GitHub " Git plugin not hosted on GitHub

118
.zshrc

@ -268,6 +268,8 @@ alias cp="cp -i"
alias df="df -h" alias df="df -h"
alias free="free -m" alias free="free -m"
alias grep="grep --color=auto" alias grep="grep --color=auto"
alias open="xdg-open"
#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 #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; } #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; }
@ -295,5 +297,117 @@ alias adbcap="adb shell screencap -p"
# fzf config # fzf config
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
export FZF_DEFAULT_COMMAND='ag -g ""' export FZF_DEFAULT_COMMAND='ag --hidden --ignore .git --ignore .idea -l -g ""'
export FZF_DEFAULT_OPTS="--reverse --inline-info" #export FZF_DEFAULT_OPTS="--reverse --inline-info"
export FZF_DEFAULT_OPTS="--height 40% --layout=reverse --preview '(highlight -O ansi {} || cat {}) 2> /dev/null | head -500'"
# fe [FUZZY PATTERN] - Open the selected file with the default editor
# - Bypass fuzzy finder if there's only one match (--select-1)
# - Exit if there's no match (--exit-0)
fe() {
local files
IFS=$'\n' files=($(fzf-tmux --query="$1" --multi --select-1 --exit-0))
[[ -n "$files" ]] && ${EDITOR:-vim} "${files[@]}"
}
# Modified version where you can press
# - CTRL-O to open with `open` command,
# - CTRL-E or Enter key to open with the $EDITOR
fo() {
local out file key
IFS=$'\n' out=("$(fzf-tmux --query="$1" --exit-0 --expect=ctrl-o,ctrl-e)")
key=$(head -1 <<< "$out")
file=$(head -2 <<< "$out" | tail -1)
if [ -n "$file" ]; then
[ "$key" = ctrl-o ] && open "$file" || ${EDITOR:-vim} "$file"
fi
}
# Use fd and fzf to get the args to a command.
# Works only with zsh
# Examples:
# f mv # To move files. You can write the destination after selecting the files.
# f 'echo Selected:'
# f 'echo Selected music:' --extention mp3
# fm rm # To rm files in current directory
f() {
sels=( "${(@f)$(fd "${fd_default[@]}" "${@:2}"|fz)}" )
test -n "$sels" && print -z -- "$1 ${sels[@]:q:q}"
}
# Like f, but not recursive.
fm() f "$@" --max-depth 1
# Deps
alias fz="fzf-noempty --bind 'tab:toggle,shift-tab:toggle+beginning-of-line+kill-line,ctrl-j:toggle+beginning-of-line+kill-line,ctrl-t:top' --color=light -1 -m"
fzf-noempty () {
local in="$(</dev/stdin)"
test -z "$in" && (
exit 130
) || {
ec "$in" | fzf "$@"
}
}
ec () {
if [[ -n $ZSH_VERSION ]]
then
print -r -- "$@"
else
echo -E -- "$@"
fi
}
# fd - cd to selected directory
fd() {
local dir
dir=$(find ${1:-.} -path '*/\.*' -prune \
-o -type d -print 2> /dev/null | fzf +m) &&
cd "$dir"
}
# fh - repeat history
fh() {
print -z $( ([ -n "$ZSH_NAME" ] && fc -l 1 || history) | fzf +s --tac | sed -r 's/ *[0-9]*\*? *//' | sed -r 's/\\/\\\\/g')
}
# fkill - kill process
fkill() {
local pid
pid=$(ps -ef | sed 1d | fzf -m | awk '{print $2}')
if [ "x$pid" != "x" ]
then
echo $pid | xargs kill -${1:-9}
fi
}
# tm - create new tmux session, or switch to existing one. Works from within tmux too. (@bag-man)
# `tm` will allow you to select your tmux session via fzf.
# `tm irc` will attach to the irc session (if it exists), else it will create it.
tm() {
[[ -n "$TMUX" ]] && change="switch-client" || change="attach-session"
if [ $1 ]; then
tmux $change -t "$1" 2>/dev/null || (tmux new-session -d -s $1 && tmux $change -t "$1"); return
fi
session=$(tmux list-sessions -F "#{session_name}" 2>/dev/null | fzf --exit-0) && tmux $change -t "$session" || echo "No sessions found."
}
# fs [FUZZY PATTERN] - Select selected tmux session
# - Bypass fuzzy finder if there's only one match (--select-1)
# - Exit if there's no match (--exit-0)
fs() {
local session
session=$(tmux list-sessions -F "#{session_name}" | \
fzf --query="$1" --select-1 --exit-0) &&
tmux switch-client -t "$session"
}
unalias z 2> /dev/null
z() {
[ $# -gt 0 ] && _z "$*" && return
cd "$(_z -l 2>&1 | fzf --height 40% --nth 2.. --reverse --inline-info +s --tac --query "${*##-* }" | sed 's/^[0-9,.]* *//')"
}
#alias lp="lpass show -c --password $(lpass ls | fzf | awk '{print $(NF)}' | sed 's/\]//g')"

10
README.md

@ -61,3 +61,13 @@ Tmux 配置參考了 [gpakosz](https://github.com/gpakosz/.tmux) 的大部分配
set -g @plugin 'tmux-plugins/tmux-sensible' set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-yank' set -g @plugin 'tmux-plugins/tmux-yank'
## fzf config
There are following alias in `.zshrc` :
- fe : open file using $EDITOR
- fo : open file Ctrl-o using open, Ctrl-e use $EDITOR
- fd : cd path
- fkill : kill process
- tm : tm new tmux session
- fs : tmux attach tmux session

18
tmux/.tmux.conf

@ -133,21 +133,21 @@ set-option -g status-justify centre
# set -g pane-active-border-bg default # set -g pane-active-border-bg default
# set color of command line # set color of command line
set -g message-fg white #set -g message-fg white
set -g message-bg colour22 #set -g message-bg colour22
set -g message-attr bright #set -g message-attr bright
set -g status-right '#[fg=colour233,bg=colour241,bold] %d/%m #[fg=colour233,bg=colour245,bold] %H:%M:%S ' set -g status-right '#[fg=colour233,bg=colour241,bold] %d/%m #[fg=colour233,bg=colour245,bold] %H:%M:%S '
set -g status-right-length 50 set -g status-right-length 50
# 设置当前窗口格式及颜色 # 设置当前窗口格式及颜色
setw -g window-status-current-format "#[bg=brightmagenta]#[fg=colour8] #I #[fg=colour8]#[bg=colour14] #W " setw -g window-status-current-format "#[bg=brightmagenta]#[fg=colour8] #I #[fg=colour8]#[bg=colour14] #W "
setw -g window-status-current-bg colour0 #setw -g window-status-current-bg colour0
setw -g window-status-current-fg colour11 #setw -g window-status-current-fg colour11
setw -g window-status-current-attr dim #setw -g window-status-current-attr dim
setw -g window-status-fg cyan #setw -g window-status-fg cyan
setw -g window-status-bg colour234 #setw -g window-status-bg colour234
setw -g window-status-attr dim #setw -g window-status-attr dim
# user defined # user defined
if '[ -f ~/.tmux.conf.local ]' 'source ~/.tmux.conf.local' if '[ -f ~/.tmux.conf.local ]' 'source ~/.tmux.conf.local'

38
ubuntu_init.sh

@ -0,0 +1,38 @@
#!/bin/bash -
#===============================================================================
#
# FILE: ubuntu_init.sh
#
# USAGE: ./ubuntu_init.sh
#
# DESCRIPTION:
#
# OPTIONS: ---
# REQUIREMENTS: ---
# BUGS: ---
# NOTES: ---
# AUTHOR: YOUR NAME (),
# ORGANIZATION:
# CREATED: 08/30/2019 03:21:28 PM
# REVISION: ---
#===============================================================================
set -o nounset # Treat unset variables as an error
sudo apt install -y vim \
exuberant-ctags \
fcitx \
fcitx-rime \
fcitx-module-cloudpinyin \
gimp \
inkscape \
shutter \
audacity \
numix-gtk-theme \
numix-icon* \
ultra-flat-icons-* \
ultra-flat-icons \
uget \
telegram \
fonts-emojione-svginot
Loading…
Cancel
Save