ラベル Cygwin の投稿を表示しています。 すべての投稿を表示
ラベル Cygwin の投稿を表示しています。 すべての投稿を表示

2016年4月29日金曜日

zsh導入記録

zshを使うようにしてみたので、ログインシェルへの設定など
導入した際の記録です。


Macのzsh導入

# zshのインストール
brew install zsh

#  /etc/shellsに "/usr/local/bin/zsh" を追記する
sudo vim /etc/shells

# chshでzshに変更
chsh -s /usr/local/bin/zsh

Cygwinのzsh導入


zshのインストール
apt-cyg install zsh

/etc/passwdファイル自体がない場合はmkpasswdで生成する
社内ネットワーク環境などでは大量のユーザーが出力されるみたいなので、-l -c オプションでローカルユーザーに限定しているみたい。
mkpasswdのオプションに関してはこちらを参照(http://d.hatena.ne.jp/i_k_b/20150514/1431590062)
mkpasswd -l -c > /etc/passwd

/etc/passwdのログインシェルを編集
:/home/(ユーザー名):/usr/bin/zsh

※環境変数のSHELL設定や、Cygwin.batのbashをzshにするなどの必要はないようです。

zgenの導入


zshのプラグイン管理ツール、プラグイン管理が楽になるので入れておいた方が良さげ。
oh-my-zsh、Antigen、Prezto、zgen、zplugなどがあるが、zgenとzplugが比較的最近のやつで、速くなっているそうだ。
zplugの方が色々と高機能っぽいが、設定が比較的ラクそうだったので今回はzgenで管理していこうと思います。

zgenをクローン
cd ~
git clone https://github.com/tarjoilija/zgen.git .zgen

.zshrcを用意する
# load zgen
source "${HOME}/.zgen/zgen.zsh"

# if the init scipt doesn't exist
if ! zgen saved; then
    echo "Creating a zgen save"

    zgen oh-my-zsh

    # plugins
    zgen oh-my-zsh plugins/git
    zgen oh-my-zsh plugins/sudo
    zgen oh-my-zsh plugins/command-not-found
    zgen load zsh-users/zsh-syntax-highlighting
    zgen load /path/to/super-secret-private-plugin

    # bulk load
    zgen loadall <<EOPLUGINS
zsh-users/zsh-history-substring-search
/path/to/local/plugin
EOPLUGINS
    # ^ can't indent this EOPLUGINS

    # completions
    zgen load zsh-users/zsh-completions src

    # theme
    zgen oh-my-zsh themes/arrow

    # save all to init script
    zgen save
fi



gitリポジトリの状況取得に時間がかかる場合、下記のgit config設定でリポジトリ状況を取得しなくできます。
超重たいgitリポジトリの場合は無効にしておいたほうがストレスないです。
git config --add oh-my-zsh.hide-status 1

プラグインの読み込み設定を変更したら、いったんリセットしましょう。
zgen reset

2013年8月10日土曜日

apt-cygのx86_64対応

apt-cyg とは、cygwin環境上で使えるパッケージ管理ツールです。インストールは次のように、ダウンロードしてきたものに実行権限を与えて、binディレクトリに配置するだけでOK。
wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg
chmod a+x apt-cyg
mv apt-cyg  /usr/local/bin/

以下にapt-cygを使っていて、下記エラーが出る場合の対処法を記載する。
`setup.ini' というファイルはありません。
Error updating setup.ini, reverting

原因はリポジトリのサイトにx86_64ディレクトリが追加された事で、内部のPATH指定が異なるようだ。
apt-cygの中身は、シェルスクリプトになっているので、下記パッチをあてるか、直接編集して対応出来る。
--- apt-cyg.org 2013-08-10 10:57:28.000000000 +0900
+++ apt-cyg 2013-08-10 11:11:15.000000000 +0900
@@ -95,14 +95,14 @@
   then
     touch setup.ini
     mv setup.ini setup.ini-save
-    wget -N $mirror/setup.bz2
+    wget -N $mirror/x86_64/setup.bz2
     if test -e setup.bz2 && test $? -eq 0
     then
       bunzip2 setup.bz2
       mv setup setup.ini
       echo Updated setup.ini
     else
-      wget -N $mirror/setup.ini
+      wget -N $mirror/x86_64/setup.ini
       if test -e setup.ini && test $? -eq 0
       then
         echo Updated setup.ini
Download here

パッチをあてる場合
cd
wget http://tyfunction.net/download/apt-cyg.patch
cd /usr/local/bin/
patch < ~/apt-cyg.patch
rm ~/apt-cyg.patch

直接編集する場合は、
95行目あたりから二箇所を編集すれば良い。