ZSH β
π§ Π‘ΡΡΡ β
Zsh + Oh My Zsh β ΡΠ»ΡΡΡΠ΅Π½Π½ΡΠΉ shell Ρ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΎΠΉ, ΡΠ΅ΠΌΠ°ΠΌΠΈ.
βοΈ Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° β
sudo pacman -S zsh
chsh -s /usr/bin/zshpacman -S zshβ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Zshchsh -s /usr/bin/zshβ ΡΠΌΠ΅Π½Π° shell ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π° Zsh
ΠΠΎΡΠ»Π΅ chsh β ΡΠ΅Π»ΠΎΠ³ΠΈΠ½.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Oh My Zsh β ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³Π°ΠΌΠΈ ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ Zsh.
π» ΠΠ»Π°Π³ΠΈΠ½Ρ β
git clone https://github.com/zsh-users/zsh-autosuggestions \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-completions \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-completions
git clone https://github.com/zsh-users/zsh-autocomplete \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autocompletezsh-autosuggestionsβ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΠΏΡΠΈ Π²Π²ΠΎΠ΄Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΡΡΠΎΡΠΈΠΈzsh-syntax-highlightingβ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ (ΠΎΡΠΈΠ±ΠΊΠΈ ΠΊΡΠ°ΡΠ½ΡΠΌ)zsh-completionsβ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡzsh-autocompleteβ Π²ΡΠΏΠ°Π΄Π°ΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
zsh-completions
zsh-autocomplete
)ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π² ~/.zshrc. zsh-syntax-highlighting Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ.
π» Π’Π΅ΠΌΠ° Powerlevel10k β
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k--depth=1 β ΡΠΊΠ°ΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ (Π±ΡΡΡΡΠ΅Π΅).
Π ~/.zshrc Π΄ΠΎΠ±Π°Π²Ρ:
# Powerlevel10k ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π² ZSH_CUSTOMΠΠΎΡΠ»Π΅ β p10k configure Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²ΠΈΠ΄Π°.
π» fzf (ΠΏΠΎΠΈΡΠΊ) β
sudo pacman -S fzfFZF β fuzzy finder Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ ΠΈΡΡΠΎΡΠΈΠΈ, ΡΠ°ΠΉΠ»Π°ΠΌ, ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ.
Π ~/.zshrc:
[ -f /usr/share/fzf/key-bindings.zsh ] && source /usr/share/fzf/key-bindings.zsh
[ -f /usr/share/fzf/completion.zsh ] && source /usr/share/fzf/completion.zshkey-bindings.zshβCtrl+RΠ΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ ΠΈΡΡΠΎΡΠΈΠΈcompletion.zshβ**+ Tab Π΄Π»Ρ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΡΠ΅ΠΉ
π» CLI ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ β
sudo pacman -S bat exa ripgrep fd dust btop fzf tree unzip zip lazygit| ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ | ΠΠ°ΠΌΠ΅Π½Π° | Π§ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ |
|---|---|---|
bat | cat | ΠΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, Π½ΠΎΠΌΠ΅ΡΠ° ΡΡΡΠΎΠΊ |
exa | ls | Π¦Π²Π΅ΡΠ°, ΠΈΠΊΠΎΠ½ΠΊΠΈ, Π΄Π΅ΡΠ΅Π²ΠΎ |
ripgrep | grep | ΠΡΡΡΡΡΠΉ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ |
fd | find | ΠΡΡΡΡΡΠΉ ΠΏΠΎΠΈΡΠΊ ΡΠ°ΠΉΠ»ΠΎΠ² |
dust | du | ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΏΠ°ΠΏΠΎΠΊ |
btop | htop | ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² |
lazygit | git | TUI-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Git |
tree | β | ΠΠ΅ΡΠ΅Π²ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² |
unzip/zip | β | ΠΡΡ ΠΈΠ²Π°ΡΠΈΡ |
π» ΠΠ»ΠΈΠ°ΡΡ Π² Zsh β
nano ~/.oh-my-zsh/custom/aliases.zshOMZ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°Π΅Ρ Π²ΡΠ΅ *.zsh ΠΈΠ· custom/ β Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ°Π²ΠΈΡΡ .zshrc.
π» ΠΠ²ΡΠΎΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² β
omz updateΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Oh My Zsh ΠΈ Π²ΡΠ΅Ρ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ².
crontab -e
0 5 * * 1 omz update > /dev/null 2>&1ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ½Π΅Π΄Π΅Π»ΡΠ½ΠΈΠΊ Π² 5:00 ΡΠ΅ΡΠ΅Π· cron.
β οΈ ΠΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈ β
- ΠΠΎΡΡΠ΄ΠΎΠΊ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π²Π°ΠΆΠ΅Π½:
zsh-syntax-highlightingΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ - ΠΠΎΡΠ»Π΅
chshβ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π»ΠΎΠ³ΠΈΠ½ source ~/.zshrcΠΈΠ»ΠΈexec zshΠ΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ