Блог Олега Сердюкова

Настройка терминала в macOS

В качестве основного shell я использую zsh. Хардкорные админы могут высмеять эту привычку, ведь на серверах по умолчанию стоит bash (как я рад, что ушли времена HP-UX, Sun, Digital Unix, для которых по умолчанию использовался sh, и доступен для использования csh). На рабочих станциях у меня стоит zsh, мне он удобен и это важнее следованию “канонам”.

Конечно же, я не закостенел в своих привычках и с удовольствием научусь у вас новым инструментам и приёмам. Но делать сознательный даунгрейд из-за гипотетического “противник не нажмет на кнопку, если вы лишите его руки”. Я пользуюсь iTerm2 (а если точнее, то iTerm3 beta). Доказывать обоснованность моего выбора не хочу. Последний раз использовал штатный Terminal.app дольше, чем нужно для ввода пары команд при начальной настройке чистого macOS, достаточно давно и аргументированно рассказать о его недостатках не могу. Поэтому могу сказать только то, что iTerm мне чрезвычайно нравится и я провожу в нём от 2 до 8 часов каждый день. После настроек всё выглядит так:

Итак, ставлю zsh:

$ brew install zsh

Где zsh, там и oh-my-zsh.

$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Конфигурация .zshrc:

# Exports

export LANG=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8

export PYTHONUNBUFFERED=1

# Make vim the default editor
export EDITOR="vim"

# Larger bash history (default is 500)
export HISTSIZE=32768;
export HISTFILESIZE=$HISTSIZE;
export HISTCONTROL=ignoredups;

# Make some commands not show up in history
export HISTIGNORE="ls:cd:cd -:pwd:exit:date:* --help";

# Don’t clear the screen after quitting a manual page
export MANPAGER="less -X";

# Always enable colored `grep` output
export GREP_OPTIONS="--color=auto";

# Paths
export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin
export PATH=$HOME/.local/bin:$PATH
export PATH=$HOME/Library/Python/2.7/bin:$PATH

# RVM
if [[ -s $HOME/.rvm/scripts/rvm ]]; then
  PATH=$PATH:$HOME/.rvm/bin
  source $HOME/.rvm/scripts/rvm
fi

# Oh My ZSH
ZSH=$HOME/.oh-my-zsh
ZSH_THEME="agnoster"

CASE_SENSITIVE="false"
DISABLE_AUTO_UPDATE="true"
DISABLE_LS_COLORS="false"
DISABLE_AUTO_TITLE="true"
DISABLE_CORRECTION="true"
COMPLETION_WAITING_DOTS="true"
DISABLE_UNTRACKED_FILES_DIRTY="false"
HIST_STAMPS="yyyy-mm-dd"

plugins=(
    brew
    colored-man
    colorize
    docker
    extract
    git
    osx
    rvm
    ssh-agent
    sublime
    tmux
    vagrant
)

source $ZSH/oh-my-zsh.sh
unsetopt correct_all
unsetopt correctall

# use prefix to specify gnu version of a core utility on OSX
if [[ $OSTYPE != "linux-gnu" ]]; then
    gnu_prefix=g
fi

# Aliases
alias vim="vim -p"
alias vi="vim"
alias tree="tree -C"
alias ls="gls --color=auto"
eval $(${gnu_prefix}dircolors $HOME/.dircolors/dircolors.ansi-universal)

# needed for tmux colors
export TERM="screen-256color"

Для dircolors использую [dircolors-solarized]:

$ git clone https://github.com/seebi/dircolors-solarized.git ~/.dircolors

Цветовая схема в iTerm2 одна из штатных — “Pastel (Dark Background)”:

Шрифт использую модифицированный под Powerline — Meslo LG M DZ Regular:

Работает всё быстро и на мой взгляд получается красиво.

Однако это только промежуточный результат. У меня не было времени допилить конечную конфигурацию на новом ноутбуке, а так я использую [Powerline]. Об этом я расскажу в следующей заметке. Хочу лишь предупредить — несмотря на “игрушечность” задачи shell на Mac mini 2010 с i7 и SSD даже слегка подтормаживает именно из-за Powerline. Так что этот вариант не для слабых систем.

Comments