雑記帳

ちょっとした文章とかメモ書きとか。

zshを使ってみる

zshというものを色々な方面から布教紹介されたので使ってみるという記事。

zshはbashとtcshのいいとこ取りをしたようなシェルで究極のシェルとも呼ばれています。
早速.zshrcを設定していきます。

基本設定

path=(/usr/share/zsh/functions /usr/share/zsh/4.3.17/scripts $fpath)
alias ls='ls --color'
#---- 入力コマンドの履歴機能を設定する ------------------------------------------
HISTFILE=~/.zsh_history    # 履歴ファイルの指定
HISTSIZE=1000         # 履歴の記憶量
SAVEHIST=1000           # 履歴の保存量
setopt hist_ignore_dups    # 直前と同じコマンドラインはヒストリに追加しない
#deleteキーの挙動をbashと同じようにする。
bindkey -e
bindkey "^?"    backward-delete-char
bindkey "^H"    backward-delete-char
bindkey "^[[3~" delete-char
bindkey "^[[1~" beginning-of-line
bindkey "^[[4~" end-of-line

ここまでは基本設定。

見た目などの設定

このプロンプトは
username@hostname currendir(短縮版)%
な見た目にしています。

#---- プロンプトを設定する ------------------------------------------------------
setopt prompt_subst
## プロンプトの設定
autoload colors
colors

PROMPT="%n@%m %c%% " #"%n@%m %c%% "
PROMPT2='>> '
if [ "$TERM" = "xterm" -o "$TERM" = "kterm" ]
then
  hostname=`hostname -s`
  function _setcaption() { echo -ne      "\e]1;${hostname}\a\e]2;${hostname}$1\a" > /dev/tty }
  # ディレクトリを移動したら、ウィンドウのタイトルを
  # ホスト名:現在地 のように変更
  function chpwd() {  print -Pn "\e]2; %n@%m %~\a" }
  # 初期設定してあげる(cd . でも可)
  chpwd
  # 特定のコマンド実行中は、タイトルを ホスト名 (コマンド 名) のように
  # 変更
  function _cmdcaption() { _setcaption " ($1)"; "$@"; chpwd }
  for cmd in telnet slogin ssh rlogin rsh su sudo
  do
    alias $cmd="_cmdcaption $cmd"
  done
fi

## 補完機能の強化
autoload -U compinit
compinit

これくらいでしょうか。

後はIntel Compilerに関する設定です。
bashとzshで==と=の違いがあるところはシンタックスエラーが出てしまいます。

#bash -> zshへの移行。
$sudo sh -c "sed 's/==/=/g' /opt/intel/composerxe-2011/bin/compilervars.sh >/opt/intel/composerxe-2011/bin/compilervars.zsh"

とsedコマンドを使うなどしてシンタックスエラーが出ないように。
他にもエラーが出た時は同じように対処することでエラーは取り除けます。

fpathはどうやら最初から設定されているっぽいのでこれで補完が効かなくて焦りました。

bashとそこまでシンタックスの差がないのでほぼbashからのコピペで動きます。
bashよりも軽くなったのに機能が多くてビックリします。

zsh、オススメです。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。