Zsh
Documentation
Source Code
Syntax
配列
Bashと違って、配列の添字が 1
から始まることに注意が必要。
a=(x y z)
echo $a[1] #=> x
echo $a[2] #=> y
参考:
Configuration
# history -i でコマンドの実行時間表示
setopt extended_history
参考:
Options
http://zsh.sourceforge.net/Doc/Release/Options.html
setopt
, unsetopt
はPOSIXの set +/-o
の代わりにzshoptionsの設定に用いることができる。 set +/-o
も使えるみたい。
Examples:
setopt shwordsplit # 他のシェルと文字列変数の分割方法を揃える
setopt ksharrays # 配列の添字を0から始める
参考:
emulate
他のシェルと互換性のあるモード。色んなオプションがセットされる。
emulate -R sh # POSIX shに近いモード
emulate -R ksh # ksh (bash) に近いモード
参考:
helpコマンド
Bashとは違って、Zshは組み込まれている
help
コマンドを有効にしていません。Zshでhelpを使うには、以下をzshrcに追加してください:
autoload -U run-help
autoload run-help-git
autoload run-help-svn
autoload run-help-svk
unalias run-help
alias help=run-help
プロンプト
参考:
プロンプトの種類
プロンプト | 説明 |
---|---|
PROMPT | 左プロンプト |
RPROMPT | 右プロンプト |
SPROMPT | correctで訂正の候補を出すときに表示されるプロンプトです |
PROMPT2, RPOMPT2 | コマンドが複数行になった時に表示されるプロンプトです |
PROMPT3 | ? |
PROMPT4 | ? |
特殊文字
文字 | 出力内容 | 例 |
---|---|---|
%n | ユーザー名 | root |
%# | ユーザー種別 | #(rootのとき) %(root以外) |
%m | ホスト名 | localhost |
%d, %/ | カレントディレクトリ | /home/me/dir |
%~ | カレントディレクトリ | ~/dir |
%C | カレントディレクトリ | dir |
%T | 時間 (HH:MM) | |
%* | 時間 (HH:MM:SS) | |
%D | 日付 (YY-MM-DD) |
色
こんな感じで色を付けられれる。
# ①依存なし
PROMPT='%F{cyan} $n %f'
# ②colorsを使う
autoload -Uz colors
colors
PROMPT='%{${fg[cyan]}%} $n %{${reset_color}%}'
色の文字か番号で色を指定できる。
番号 | 色 |
---|---|
0 | black |
1 | red |
2 | green |
3 | yellow |
4 | blue |
5 | magenta |
6 | cyan |
7 | white |
参考:
色: 256色対応
Examples:
# Zshパラメータ利用
# - %F{文字色番号}
# - %K{背景色番号}
# - %f ... 文字色リセット
# - %k ... 背景色リセット
PROMPT="%K{082}%F{001}[%n@%m]%f%k"
# エスケープシーケンス利用
PROMPT=$'%{\e[30;48;5;082m%}%{\e[38;5;001m%}[%n@%m]%{\e[0m%}'
- 上2つはどちらも同じ効果を表す
- エスケープシーケンスについては See シェル#ANSIエスケープシーケンス
参考:
MEMO:
- (2020-05-19)上のZshパラメータを使う方法がUbuntu 18.04デスクトップ環境 + 端末アプリだと上手く行ってない
- (2020-05-24)macOS + iTerm2なら上手く行った^
複数行対応
左側のPROMPTなら改行文字を入れればいいが、 precmd()
でプリントするという手もある。print -P
オプションを付けると、PROMPTのフォーマットで出力できるみたい。
参考:
vcs_info
メモ:
check-for-changes
をtrueにしても、まだgitの管理下にない新規ファイルがあるだけだとstagedstr
にもunstagedstr
にも表れない。
参考:
- zsh/vcs_info-examples at master · zsh-users/zsh
- zshのターミナルにリポジトリの情報を表示してみる · けんごのお屋敷
- Show Git State in ZSH Prompt via vcs_info | Timothy Basanov
Feature
ZLE
Zshのコマンドライン編集機能。
たぶん、peco等でキーボードショートカットを作るときに使う人が多いのではないかな。
Examples:
# 編集を終了し、入力されたコマンドを実行する
zle accept-line
# 画面をクリアする
zle clear-screen
参考:
Tools
パッケージ管理ツールについては、シェル > パッケージ管理参照。
Packages / Plugins
- https://github.com/zsh-users/zsh-syntax-highlighting
- fish shellのようなシンタックスハイライトを提供してくれる
- See 2020-05-22#Ubuntu 18.04でzsh-syntax-highlightingを入れた
Child Pages
最終更新 2020-06-26: [zsh] About zshoptions(1) (e6b9e51cf)