rc/zshrc
2020-05-18 23:38:25 +09:00

59 lines
1.3 KiB
Bash

## Basic
# enable comments in interactive-shell
setopt interactivecomments
# disable ^S ^Q
stty stop undef start undef
# history
HISTFILE=~/.zsh_history
HISTSIZE=1000 # memory
SAVEHIST=1000 # file
setopt appendhistory
## Input
# use vim mode
bindkey -v
# imap jk to <ESC>
bindkey -Mviins -s jk '\e'
# map ¥ to \
bindkey -Mvicmd -s r¥ 'r\'
bindkey -Mviins -s ¥ '\\'
## Edit
# edit zshrc
vizr() {vi $HOME/.zshrc && source $HOME/.zshrc}
sczr() {source $HOME/.zshrc}
# edit zprofile
vizp() {vi $HOME/.zprofile && . $HOME/.zprofile}
# edit vimrc
viv() {vi $HOME/.vim/sup39/vimrc}
viV() {vi $HOME/.vimrc}
## Completion
# setup
autoload -U compinit; compinit -u
ZSHC_ROOT=$HOME/.zsh_complete
# edit
vizc() { [ -z $1 ] && local fn=$ZSHC_ROOT/$1 && vi $fn && [ -f $fn ] && . $fn }
compdef "_files -W $ZSHC_ROOT" vizc # completion for vizc
# source
sczc() {source <(find "$ZSHC_ROOT" -name "*.zsh" -exec cat {} \;)}
[ -d "$ZSHC_ROOT" ] && sczc # auto source once
## PS1
function zle-line-init zle-keymap-select {
local host='%m'
case $KEYMAP in
vicmd) # normal mode
PS1="%F{200}%n@$host%f:%1~%# ";;
main) # insert mode
PS1="%F{49}%n@$host%f:%1~%# ";;
esac
zle reset-prompt
}
zle -N zle-line-init
zle -N zle-keymap-select
## Alias
alias vi='vim'
alias curl-json='curl -H"Content-Type:application/json"'
alias rand-sel='shuf -n1 -e --'