На информационном ресурсе применяются рекомендательные технологии (информационные технологии предоставления информации на основе сбора, систематизации и анализа сведений, относящихся к предпочтениям пользователей сети "Интернет", находящихся на территории Российской Федерации)

artydev & Co

1 подписчик

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

Первоначальная настройка терминала iterm2 MacOS для комфортной работы в терминале

img

Установка brew

Добавить в .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/too...)" ;\ 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.x... -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/p... 

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

:so % :PlugInstall 

Настройка tmux

Полезное видео с примером:

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

tmux hotkeys

Новая вкладка из tmux: control a + c
Новая вкладка из tmux с кастомным именем: control a + С
Переименовать вкладку (window): control a + ,
Список активных вкладок и сессий: control a + s
Переименовать сессию: control a + $

Перезагрузка конфигурации: 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 ** 

Пример: как убить сразу несколько процессов (подробнее на github)

kill -9 ** Для точного совпадения пишем 'value Затем, с помощью tab/shift-tab выделяем нужные процессы 

vim hotkeys

Перемещение в vim:

0 в начало строки
$ в конец строки
w - в начало следующего слока
b - в начало предыдущего слова
e - в конец следующего слова
gg - в начало файла
G - в конец файла

Переход в режим Insert в vim:
i - в начало курсора
a - в конец курсора
o - под текущую строку (пустую)
O - над текущей строкой (пустой)

Редактирование в vim:
di{ - удалить внутри {
di( - удалить внутри (

Закладки в vim:
m + например x - сделать закладку под кнопку x
' + x - переместиться на эта закладку

Макросы в vim:
q + имя макроса (пишем макрос) + q для завершения.
Применить макрос через @имя макроса.

grep по файлам в vim

, + f - поиск файлах , + g - поиск в файлах Ctrl + t - отррыть в новой вкладке vim 

Комментирование строк в vim (nerdcommenter)

gc - для комментирования выделенного текста gcip - для комментирования текущего абзаца gcc - комментарий строки 

Как изменить сразу несколько строк в vim stackoverflow?

  • Выделяем нужные строки через Ctrl + v
  • Нажамаем I
  • Вводим нужные данные
  • Нажимаем esc (или jk)

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

:Ex :Vex :Hex 
  • Leader dd: откроет Netrw в каталоге текущего файла.
  • Leader da: откроет Netrw в текущем рабочем каталоге.

Запуск команды внутри vim (в дополнительном окне)
Ctrl + h - запуск используя расширение файла

:!python test.py :!ls -l 

Переход по вкладкам внутри vim
gt - следующая вкладка gT - предыдущая вкладка Ngt- по номеру вкладки

Использование sed внутри vim

:%s/foo/bar/g 

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

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

Ссылка на первоисточник
наверх