Настройка MacOS [zsh, nvim, tmux, python, fzf, bat]

2 minute read

img

Установка brew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Добавить в .zshrc строку:

export PATH="/opt/homebrew/bin:$PATH"

Дополнительные настройки zsh

HISTFILE=$HOME/.zsh_history
HISTSIZE=5000000
SAVEHIST=$HISTSIZE

setopt HIST_EXPIRE_DUPS_FIRST    # Expire a duplicate event first when trimming history.
setopt HIST_IGNORE_ALL_DUPS      # Delete an old recorded event if a new event is a duplicate.
setopt HIST_IGNORE_DUPS          # Do not record an event that was just recorded again.
setopt HIST_IGNORE_SPACE         # Do not record an event starting with a space.
setopt HIST_SAVE_NO_DUPS         # Do not write a duplicate event to the history file.
setopt SHARE_HISTORY             # Share history between all sessions.

Активировать конфигурацию

source ~/.zshrc

Установка zsh powerlevel10k

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" ;\
brew install powerlevel10k ;\
echo "source $(brew --prefix)/share/powerlevel10k/powerlevel10k.zsh-theme" >>~/.zshrc ;\
brew install zsh-syntax-highlighting ;\
brew install zsh-autosuggestions ;\
echo "source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc ;\
echo "source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc ;\
source ~/.zshrc

Пошаговая конфигурация дизайна командной строки

p10k configure

Установка необходимых утилит

brew install --cask iterm2 ;\
brew install neovim ;\
brew install fd ;\
brew install bat ;\
brew install fzf ;\
brew install pkg-config ;\
brew install node@22 ;\
brew install ripgrep ;\
brew install tmux ;\
brew install openssl xz gdbm 

Добавить в .zshrc строку:

export PATH="/opt/homebrew/opt/node@22/bin:$PATH"
npm install -g pyright

Gruvbox theme for iterm2:
https://github.com/morhetz/gruvbox-contrib/blob/master/iterm2/gruvbox-dark.itermcolors

Сборка python3.13 из исходников

cd $HOME ;\
mkdir -p temp ;\
cd temp ;\
curl https://www.python.org/ftp/python/3.13.1/Python-3.13.1.tar.xz -o $HOME/temp/Python-3.13.1.tar.xz ;\
tar -xvf Python-3.13.1.tar.xz ;\
cd Python-3.13.1 ;\
brew install pkg-config ;\
./configure --prefix=/Users/arty/.python3.13 --enable-optimizations ;\
make -j8 ;\
sudo make altinstall

Добавить в .zshrc строку:

export PATH=/Users/arty/.python3.13/bin:$PATH

Настройка neovim

mkdip -p $HOME/.config/nvim ;\
cd $HOME/.config/nvim ;\
touch init.vim ;\
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
       https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'

Наполняем файл конфигурацией, затем применение настроек и установка плагинов - команды запускаем внутри vim init.vim

:so %
:PlugInstall

Настройка tmux

Полезное видео с примером: https://www.youtube.com/watch?v=U-omALWIBos

mkdip -p $HOME/.config/tmux ;\
cd $HOME/.config/tmux ;\
touch tmux.conf ;\
git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm ;\

Перезагрузка конфигурации: control a + r
Установка плагинов: control a + Shift I

Полезные комбинации и команды

Алиас команды для открытия в vim найденного файла:

alias inv='vim $(fzf --preview="bat --color=always {}")'

Установка gruvbox темы для bat (либо добавить строку EXPORT BAT_THEME=gruvbox-dark в ~/.zshrc)

bat gruvbox-dark.itermcolors

Для активации поиска в зависимости от контекста (использование fzf)

cd **
kill -9 **
export **
unexport **
ssh **
telnet **

grep по файлам в vim

, + f - поиск файлах
, + g - поиск в файлах

Ctrl + t - отррыть в новой вкладке vim

Вызов Netrw внутри vim (подробнее)

:Ex
:Vex
:Hex

Полезные материалы

Большое спасибо всем за внимание! Если вам интересны подобные рассуждения - подписывайтесь на мой канал  Telegram_logo artydev & Co.