MacOS端末を強化


この記事は、当初は2007年に出版されましたthbe.org .
個人的には、パソコンやラップトップなどを使っていると、かなり頻繁に端末を使います.その結果、自分の仕事を楽にし、端末からベストを得るために端末をかなり修正しました.過去には、私はほとんど手動でそれが私の側からの注意を必要とし、通常のアップグレードなどのOSの更新が実行されます.それで、私はターミナルを強化するとき少なくとも私が費やさなければならなかった努力を減らすことを試みました.
結果は、iterm + zsh + ohとzsh + powerline + powerlevel 9 kの組み合わせです.この組み合わせは私の要求の約95 %をカバーし、私の端末を大幅に維持するために費やさなければならない努力を減らした.このブログ記事では、私が使っている端末と同じ端末を得る方法を紹介します.

では、始めましょう!私は、あなたのMacOSにhomebrewをインストールしたと仮定します.あなたがHomebrewをインストールしないならば、私はそれをインストールすることを強く勧めます.インストールの指示はホームページにありますhttps://brew.sh/ . Homebrewでは、必要なパッケージのほとんどをインストールすることができます.しかし、これを行う前に、現在の安定したEmulm 2バージョンをダウンロードしてみましょう.
https://www.iterm2.com/downloads.html
ZIPファイルを抽出し、アプリケーションフォルダにアプリケーションを移動します.これで、iterm 2を起動できます.これを行うとzshをインストールできます.
brew install zsh zsh-autosuggestions zsh-syntax-highlighting
次のステップは、私のzshをインストールすることです.これも幸いにも簡単です.
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
ほとんどのアクションが既に完了しました.次にPowerlineをインストールする必要があります.
brew install python3
pip3 install powerline-status
私は主にVimのためにpowerlineを使用します.vimrcファイル:
" powerline
set rtp+=/usr/local/lib/python3.6/site-packages/powerline/bindings/vim
set laststatus=2
set t_Co=256
最後のステップはPowerLevel 9 kをインストールすることです.これはHomebrewと再び行うことができます.
brew tap sambadevi/powerlevel9k
brew install powerlevel9k
我々は今、すべての必要なパッケージがインストールされており、我々は構成から始めることができます.まず最初に、組み込みのフォントが完全にこの設定をサポートしていない場合は、適切なフォントを最初にインストールする必要があります.私はfiracodeライトフォントを使用しました.フォントをインストールするには、フォントライブラリにフォントをダウンロードする必要があります.
mkdir ~/Downloads/FiraCode && cd ~/Downloads/FiraCode
wget https://github.com/tonsky/FiraCode/releases/download/2/FiraCode_2.zip
unzip FiraCode_2.zip
cp ttf/*.ttf ~/Library/Fonts/
cd ~/Downloads && rm -rf FiraCode/
次のステップは、Item 2カラースキームです.私は、WES Bosによって提供されるCobalt 2を使用しますhttps://github.com/wesbos/Cobalt2-iterm . カラースキームをダウンロードしてiterm 2にインポートする必要があります.
cd ~/Downloads
curl https://raw.githubusercontent.com/wesbos/Cobalt2-iterm/master/cobalt2.itermcolors --output cobalt2.itermcolors
カラースキームをすぐにインポートされることができますときに、IterTM 2の設定を開き、プロファイル->色->プリセット->インポートが選択されます.
最後に、少なくとも、あなたのニーズに合わせてZSH設定ファイルを変更する必要があります.マイ.zshrcは次のようになります.
# zsh configuration file
#
# Author: Thomas Bendler <[email protected]>
# Date: Tue Sep 24 20:28:27 UTC 2019

# Add powerline support
POWERLINE_ZSH="/usr/local/lib/python3.7/site-packages/powerline/bindings/zsh/powerline.zsh"
[-e "${POWERLINE_ZSH}"] && source "${POWERLINE_ZSH}"

# If you come from bash you might have to change your $PATH.
export PATH="/usr/local/sbin:${PATH}"

# Path to your oh-my-zsh installation.
export ZSH="${HOME}/.oh-my-zsh"

# Uncomment the following line to use case-sensitive completion.
CASE_SENSITIVE="true"

# Uncomment the following line to change how often to auto-update (in days).
export UPDATE_ZSH_DAYS=7

# Uncomment the following line to enable command auto-correction.
ENABLE_CORRECTION="true"

# Uncomment the following line to display red dots whilst waiting for completion.
COMPLETION_WAITING_DOTS="true"

# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# You can set one of the optional three formats:
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# or set a custom format using the strftime function format specifications,
# see 'man strftime' for details.
# HIST_STAMPS="mm/dd/yyyy"

# Which plugins would you like to load?
# Standard plugins can be found in ~/.oh-my-zsh/plugins/*
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Add wisely, as too many plugins slow down shell startup.
plugins=(
  ansible
  battery
  brew
  bundler
  colorize
  docker
  dotenv
  git
  git-flow-avh
  iterm2
  nmap
  osx
  rake
  ruby
  sudo
  zsh-navigation-tools
)

ZSH_THEME="powerlevel9k"

source "${ZSH}/oh-my-zsh.sh"

# User configuration
# Load Zsh tools for syntax highlighting and autosuggestions
HOMEBREW_FOLDER="/usr/local/share"
source "${HOMEBREW_FOLDER}/zsh-autosuggestions/zsh-autosuggestions.zsh"
source "${HOMEBREW_FOLDER}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"

# Powerlevel9k configuration
#POWERLEVEL9K_MODE="compatible"

# Left prompt - Configure indicator when working as root
POWERLEVEL9K_ROOT_INDICATOR_BACKGROUND="clear"
POWERLEVEL9K_ROOT_INDICATOR_FOREGROUND="red"

# Left prompt - Configure context (user@hostname)
POWERLEVEL9K_CONTEXT_DEFAULT_BACKGROUND="clear"
POWERLEVEL9K_CONTEXT_DEFAULT_FOREGROUND="magenta"

# Left prompt - Configure display of current directory
POWERLEVEL9K_DIR_HOME_BACKGROUND="clear"
POWERLEVEL9K_DIR_HOME_FOREGROUND="white"
POWERLEVEL9K_DIR_HOME_SUBFOLDER_BACKGROUND="clear"
POWERLEVEL9K_DIR_HOME_SUBFOLDER_FOREGROUND="white"
POWERLEVEL9K_DIR_ETC_BACKGROUND="clear"
POWERLEVEL9K_DIR_ETC_FOREGROUND="red"
POWERLEVEL9K_DIR_WRITABLE_FORBIDDEN_BACKGROUND="clear"
POWERLEVEL9K_DIR_WRITABLE_FORBIDDEN_FOREGROUND="red"
POWERLEVEL9K_DIR_DEFAULT_BACKGROUND="clear"
POWERLEVEL9K_DIR_DEFAULT_FOREGROUND="white"
POWERLEVEL9K_SHORTEN_DIR_LENGTH="3"
POWERLEVEL9K_SHORTEN_STRATEGY="truncate_middle"

# Right prompt - Configure command execution status indicator
POWERLEVEL9K_STATUS_OK_BACKGROUND="clear"
POWERLEVEL9K_STATUS_OK_FOREGROUND="green"
POWERLEVEL9K_STATUS_ERROR_BACKGROUND="clear"
POWERLEVEL9K_STATUS_ERROR_FOREGROUND="red"
POWERLEVEL9K_STATUS_CROSS="true"
POWERLEVEL9K_STATUS_VERBOSE="true"

# Right prompt - Configure command execution time measurement
POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND="clear"
POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND="white"

# Right prompt - Configure version control system
POWERLEVEL9K_VCS_CLEAN_BACKGROUND="clear"
POWERLEVEL9K_VCS_CLEAN_FOREGROUND="green"
POWERLEVEL9K_VCS_MODIFIED_BACKGROUND="clear"
POWERLEVEL9K_VCS_MODIFIED_FOREGROUND="darkorange"
POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND="clear"
POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND="red"
POWERLEVEL9K_SHOW_CHANGESET="true"
POWERLEVEL9K_CHANGESET_HASH_LENGTH="12"

# Right prompt - Configure display of running background jobs
POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND="clear"
POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND="green"

# Right prompt - Configure RAM settings
POWERLEVEL9K_RAM_BACKGROUND="clear"
POWERLEVEL9K_RAM_FOREGROUND="white"

# Right prompt - Configure load settings
POWERLEVEL9K_LOAD_CRITICAL_BACKGROUND="clear"
POWERLEVEL9K_LOAD_WARNING_BACKGROUND="clear"
POWERLEVEL9K_LOAD_NORMAL_BACKGROUND="clear"
POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND="red"
POWERLEVEL9K_LOAD_WARNING_FOREGROUND="darkorange"
POWERLEVEL9K_LOAD_NORMAL_FOREGROUND="green"

# Right prompt - Configure battery status
POWERLEVEL9K_BATTERY_CHARGING_BACKGROUND="clear"
POWERLEVEL9K_BATTERY_CHARGING_FOREGROUND="white"
POWERLEVEL9K_BATTERY_CHARGED_BACKGROUND="clear"
POWERLEVEL9K_BATTERY_CHARGED_FOREGROUND="green"
POWERLEVEL9K_BATTERY_DISCONNECTED_BACKGROUND="clear"
POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND="darkorange"
POWERLEVEL9K_BATTERY_LOW_THRESHOLD="10"
POWERLEVEL9K_BATTERY_LOW_BACKGROUND="clear"
POWERLEVEL9K_BATTERY_LOW_FOREGROUND="red"
POWERLEVEL9K_BATTERY_VERBOSE=false

# Right prompt - Configure disk usage
POWERLEVEL9K_DISK_USAGE_NORMAL_BACKGROUND="clear"
POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND="green"
POWERLEVEL9K_DISK_USAGE_WARNING_BACKGROUND="clear"
POWERLEVEL9K_DISK_USAGE_WARNING_FOREGROUND="darkorange"
POWERLEVEL9K_DISK_USAGE_CRITICAL_BACKGROUND="clear"
POWERLEVEL9K_DISK_USAGE_CRITICAL_FOREGROUND="red"

# Right prompt - Configure IP address
POWERLEVEL9K_IP_BACKGROUND="clear"
POWERLEVEL9K_IP_FOREGROUND="white"

# Configure multiline prompt
POWERLEVEL9K_PROMPT_ON_NEWLINE="true"
POWERLEVEL9K_SHOW_CHANGESET="true"
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=""
POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="$ "
POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR=""
POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR=""
POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR=""
POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR=""

# Configure the prompt content
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(root_indicator context dir vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status command_execution_time ram disk_usage ip)
#POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status command_execution_time load ram disk_usage ip)

# Local custom snippets
for item in $(ls -1 ${HOME}/.profile.d/*.profile); do
  [-e "${item}"] && source "${item}"
done
これらのアドオンや設定を適切に行うと、端末は私のように見えます.