ZSH - Z Shell - ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΈΠΉ Π²ΡΠ±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΡΠ΅ΠΌ Bash
- ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΠΈΠΌΠ΅Π½ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠΎ tab ΡΠ·Π΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²: ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΠΌΡΡΠ½ΠΈΡΠΈ
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ ΡΠ΅ΠΌ
- ΠΠ°ΡΡΠΎΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² O my Zch
ΠΠ°Π»Π΅Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ zsh Π½Π° Π½Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π΅ΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°
sudo apt install zsh
chsh -s $(which zsh)
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ OMZSH
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
ΠΠ°Π»Π΅Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ NVM ΠΈ ΡΠ΅ΠΌΡ powerlevel10k
ΠΠ°Π»Π΅Π΅ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ Π΄Π»Ρ zsh
~/.zshrc
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
export ZSH="$HOME/.oh-my-zsh"
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
ZSH_THEME="powerlevel10k/powerlevel10k"
source ~/powerlevel10k/powerlevel10k.zsh-theme
plugins=(git z docker fzf fzf-zsh-plugin zsh-autosuggestions history)
source $ZSH/oh-my-zsh.sh
alias ls="eza --tree --level=1 --icons=always --no-time --no-user --no-permissions"
export PATH="/usr/local/opt/openjdk/bin:$PATH"
export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:${PATH}
export BUN_INSTALL="$HOME/.bun"
export PATH="$BUN_INSTALL/bin:$PATH"
eval "$(fzf --zsh)"
function yy() {
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
yazi "$@" --cwd-file="$tmp"
if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
cd -- "$cwd"
fi
rm -f -- "$tmp"
}
# alias nvc="NVIM_APPNAME=nvchad nvim"
alias nv="nvim"
function nvims() {
items=("default" "nv")
config=$(printf "%s\n" "${items[@]}" | fzf --prompt="ξ« Neovim Config ο½ " --height=~50% --layout=reverse --border --exit-0)
if [[ -z $config ]]; then
echo "Nothing selected"
return 0
elif [[ $config == "default" ]]; then
config=""
fi
NVIM_APPNAME=$config nvim $@
}
function htt() {
httpyac $1 --json -a | jq -r ".requests[0].response.body" | jq | bat --language=json
}
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
# pnpm
export PNPM_HOME="/home/zeizel/.local/share/pnpm"
case ":$PATH:" in
*":$PNPM_HOME:"*) ;;
*) export PATH="$PNPM_HOME:$PATH" ;;
esac
# pnpm end
Π ΡΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ git z docker fzf thefuck zsh-autosuggestions history
(ΡΡΡΠΎΡΠΊΠ° plugins = (...)
) Π² ΠΏΠ°ΠΏΠΊΡ ~/.oh-my-zsh/custom/plugins
https://github.com/nvbn/thefuck
https://github.com/zsh-users/zsh-autosuggestions
https://github.com/agkozak/zsh-z
https://github.com/unixorn/fzf-zsh-plugin
https://github.com/romkatv/powerlevel10k
ctrl+r
- Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ
Π’Π°ΠΊ ΠΆΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Ρ OMZsh Ρ Π½Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»Π°ΡΡ ΡΡΠΈΠ»ΠΈΡΠ° z
, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ
ΡΠ°Π½ΠΈΡ ΠΏΡΡΠΈ Π΄ΠΎ Π½Π°ΡΠΈΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅. Π’ΠΎ Π΅ΡΡΡ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ Π½Π°ΠΌ Π²Π²Π΅ΡΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ z <ΠΈΠΌΡ_ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ>
, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Ρ git (ΠΏΠΎ Π½Π΅ΠΌΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠΈΡΠΊ) Π²Π½ΡΡΡΠΈ ΡΠ΅Π±Ρ.