.zshrc を様々な Mac や Linux マシンなどで使い回したいという人は多いと思います しかし github で共有するには Mac だけでやりたい設定やそのマシンだけでやりたい設定などをうまく共有できるようにしなければなりません その辺りをどう解決するのかを真剣に考えた結果を共有します zshenv ~/.zshenv に
を実行して M-x tetris(Macだと esc+x 後にtetrisと入力する。上のgifではこの方法を用いている)とするか、上記に加えて を実行してから ... と入力するとターミナルでテトリスを遊べます。 参考 .zshrcで見かけるautoloadの意味と使い方 一言で言えば autoload は $fpath のディレクトリに置いてあるzshスクリプトを関数として実行できるようにするものです。デフォルトで $fpath に指定されているディレクトリには800を超える関数が登録されていて(大半は補完機能のためのものですが)、その中の1つに tetris があります % echo $fpath /usr/share/zsh/5.0.2/share/zsh/functions % head -n 7 /usr/share/zsh/5.0.2/share/zsh/functions/
今回はこの autoload が何をするものなのか解説します。 autoloadはシェル関数を読み込む autoload はシェル関数を 自動読み込み するシェルの組み込み関数です。上記のスクリプトの場合、 compinit というシェル関数を自動読み込みします。 シェルコマンドは PATH に入っていればそれだけで実行可能でしたが、シェル関数の場合は関数を定義しなければ使えません。 autoload はファイルシステム上にある関数定義を読み込むための関数なのです。そして autoload 探索するディレクトリは FPATH に入っています。 余談ですが FPATH だと : 区切りの文字列、 fpath だと配列になります。PATH と path と同じですね。 シェル関数とシェルコマンドの違い autoloadを使ってみる % mkdir ~/functions % FPATH="${
あまり知られていないと思うんだけど、zsh には無名関数を作ってすぐに実行する機能がある。JavaScript で言うところの (function() { /* ... */ }()); と同じやつ。これを使うと一時的な変数を作ってグローバルな領域を汚さないように出来るので紹介する。 書き方 書き方は簡単で、普通の関数定義の関数名の部分を省略すればOK。zsh の関数定義はいくつか書き方があるので、無名関数の書き方もその分だけある。 具体的には以下の通り。
bash/zsh では パラメータ展開の # と %を使って Prefix または Suffix を削除することができます。 $ var='hogefuga' # Prefix削除 $ echo "${var#hoge}" fuga # Suffix削除 $ echo "${var%fuga}" hoge シェルスクリプトではよく使う手法ですが、意外と覚えづらく、特にどちらが Prefix削除 でどちらが Suffix削除 なのか忘れてしまいがちです。(私だけ? 先日そんな悩みを Twitter で吐露したところ、3名の親切な方が覚え方を伝授してくれました。 その覚え方がなかなかユニークで覚えやすかったので紹介します。 # はコメントを表す記号なので Prefix(先頭)削除 # を番号記号と考えて #30 のように使うので Prefix(先頭)削除 % はパーセンテージを表す記号で、30
まず, 他のシェルをお使いの人にはごめんなさい. aliasコマンドの-sが使えるのは zsh 4.2.x- で, 他のシェルでは実装されていないと思います. あと, もう既に alias -s 知ってるよーって人は読まなくていいです. alias -s って何? 打ったコマンドの後ろ(suffix)を見て, 適当に宜しくやってくれるやつです. 次の例を見て下さい. ~$ echo "print ('hello, world')" > hello.py ~$ python hello.py hello, world ~$ alias -s py=python py=python ~$ ./hello.py hello, world ~$ Pythonのコードは python hello.py で実行出来ますが, お尻が py なら python を使います, とaliasしておけば, ./
他の人がzshを使っているのを見ていると、「もっと便利に使えるのに」と、もやっとしたり、「え、その便利な機能ってなに?」と、発見があったりします。だれかに「この設定をすると便利ですよ」と話しやすくするために、今のzshのおすすめ設定をここに記しておきます。 もし、Emacsも使っている場合はおすすめEmacs設定もどうぞ。 ディレクトリ構成 長年漬け込んできたzshの設定がそこそこの量になっているので、以下のようなディレクトリ構成にして分類しています。主に、zsh標準機能の設定と追加パッケージの設定を分けるためにこうしています。 ~ ├── .zshrc # シェルを起動する毎に読み込まれる。 │ # ~/.zsh.d/zshrcを読み込んで │ # 標準機能の追加設定を行う。 ├── .zshenv # ログイン時に一度だけ読み込まれる。 │ # ~/.zsh.d/zshenvを読み込ん
これは zsh manual を読みながら書いたメモである。 僕には判りきっている部分とか、必要としない機能とか、意味が判らない場所とかは適当に読み飛しているので注意 1. The Z Shell Manual 1.1 Producing documentation from zsh.texi html 版マニュアルは http://zsh.sunsite.dk/Doc/ にある 2. Introduction zsh は、スタンダードなシェルの中では ksh に最も近い。 2.1 Author zsh をはじめたのは Paul Falstad <pf@zsh.org>. 現在は zsh-workers mailing list <zsh-workers@sunsite.dk> でメンテされていて、コーディネータは Peter Stephenson <pws@zsh.org>. 彼へのコン
Copyright (C) Mainichi Communications Inc. All rights reserved. 掲載記事の無断転載を禁じます
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く