You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
bashからzshに乗り換えるユーザーを対象に16の違いをまとめました。MacOSもbashからzshに変更になりましたので、zshを使い始めるにあたってのポイントを解説していきます。 はじめに zshとは? 2019年、WWDC19の基調講演でApple社は次にリリースする「MacOS X Catalina」より標準のシェルを「zsh」に変更すると発表しました。そして現在、Macを購入したり最新のバージョンにアップデートしてターミナルを開くとbashではなくzshが起動します。 もともとMacOS Xは当初tcshであったのがv10.3 Pantherよりbashに変更された経緯があり今回それがzshにさらに変更された形になります。 こうなった経緯としてはbashのライセンスとセキュリティによる事情があります。MacOS Mojaveまでに搭載されているbashはバージョンが3で実はこれ
zshでは、何か操作を行ったときに呼び出されるhook関数を登録できる。これを使うと、例えば「コマンドを実行するたびにこの関数を実行する」ということができるようになる。もうすでに使ってる人も多いと思うけど、ここでその使い方をまとめておく。 hook関数を登録するには、add-zsh-hook関数を使う。使い方としては、「add-zsh-hook <hook名> <関数名>」という形で呼び出す。「hook名」はどういうときに関数が呼び出されるかというイベント種別を表す文字列で、詳しくは後で説明する。 例 次の例ではprecmdのときにprecmd_function1という関数を呼び出すように登録している。
自分で precmd 定義するよりか、フック利用した方が良いと思う。 そもそも zsh には、precmd_functions っていう配列に関数名突っ込んでやったら、プロンプト出す前にそれらを呼び出してくれる仕組みが存在してる。man zshmisc(1) の Hook Functions っていうところ読むと良いです。 For the functions below, it is possible to define an array that has the same name as the function with `_functions' appended. Any element in such an array is taken as the name of a function to execute; it is executed in the same context
設定ファイルの種類と読み込み順序 読み込み順を確かめるには実際に各設定ファイルを作ってそのファイル上でファイル名をechoしてみれば良い ログインシェルの場合(iterm2起動時,SSH,TMUX,SCREENなど含む) zshenv > zprofile > zshrc > zloginの順で、 それぞれglobalを読み込んだ後で、localを上書き読み込み ちなみに以下の〜は環境変数\$ZDOTDIRがあればそれが使われて、なければ\$HOME(つまり〜)が使われます。 \$HOME以外に置きたい場合には\$ZDOTDIRを指定しましょう。 #指定するとgit管理も楽ちんになりますね global) /etc/zshenv local ) ~/.zshenv global) /etc/zprofile local ) ~/.zprofile global) /etc/zshrc lo
zsh は cd -[TAB] で補完できる directory stack が setopt autopushd と組み合わせていると非常に便利なので、 directory stack を自前で保存する仕組みを作ったり、 GNU screen の他の WINDOW のディレクトリに移動するための cdsというコマンド を作ったりして、 現状でもあまり困っていませんでした。 しかし、 zshcontrib(1) に入っているものも試してみるのが 良さそうと思って試してみました。 ドキュメント ドキュメントは man zshcontrib か、 pager $^fpath/cdr(N) で読めます。 cdr コマンドの使い方 cdr [TAB] で補完して使ったり、 cdr -l で一覧を出したり、 cdr -e で一覧を編集したりできます。 cdr -e の編集は zle なので、 bin
Homebrewの導入方法については以前の記事を参考にして下さい。 以下、homebrewおよびzshインストール後に設定していきます。 1.zsh流の環境変数PATHの設定方法 環境変数PAHTに "/usr/local/bin" などを追加する場合、zshでもbashと同じ方法で設定することができますが、今回はzsh流の設定方法を行いましょう。 以下の設定を "~/.zshrc" に追加して下さい。 ## 重複パスを登録しない typeset -U path cdpath fpath manpath ## sudo用のpathを設定 typeset -xT SUDO_PATH sudo_path typeset -U sudo_path sudo_path=({/usr/local,/usr,}/sbin(N-/)) ## pathを設定 path=(~/bin(N-/) /usr/l
The ZSH Workshop - by Larry Schrof Proceed to the Table of Contents
最終更新日: 2002-05-18 (公開日: 2002-05-18) Unix Magazine 誌に 2002年1月号から 2003年2月号にかけて連載し ていた記事の元の原稿です。 コンピュータの方がうまくできることに人間を使うな。 -- Tom Duff *1 私の見る限り、プログラマという人種は決まって事務作業が嫌いな ようである。同じような書類を何枚も書かされたり、1つ誤字があ るから書き直せと言われたりすると、異常にストレスがたまる。 同様に、計算機を使っていても、同じような作業を何度も繰り返し たり、ちょっとでも間違えたら最初からやり直し、というのは耐え られない。そこで、今回は履歴を活用して作業の再利用をするノウ ハウを取り上げる。 シェルの履歴 Unixを使い始めて間もない初心者が作業しているところを見ると、 打ち間違えたコマンドを律儀に最初から打ち直しているのに気づく
MacのTerminalでscreenを使ってる。ステータスラインは邪魔だから要らないと思っていたけど、さすがにwindowの数が多くなってくると把握できないし自分がどこを開いているのかもよく分からなくなってきたので、表示させることにした。 表示させるだけの設定は、.screenrcに hardstatus on だけでOK。常時最下行に表示させる場合は hardstatus alwayslastline [string] とかで、[string]に表示させる内容を指定できる。 ここに指定できる特殊文字列については"man screen"すれば載っているので頑張って読む。 読みたくなくて検索するとよくヒットするのが下記の設定。 - unknownplace.org 中身についてはここで解説されていたり。 hardstatusを解読 - urekatのスカンク日記3 自分はこれに倣って ha
コードを書いていると、以前のコードと現在のコードとのdiffを取りたいことがよくあります。 でも、diffの結果はちょっと読みにくい。もしdiffの結果が色付けされていたら、もっと読みやすいじゃないかと、今日ふと思いました。 そこで、zshのグローバルエイリアスを使って、diffの結果をvimで色付けして表示するようにしてみました。(.vimrcには「syntax on」と書いておきます。) % vim ~/.zshrc [...] # View command results(stdout) by vim export VIM_TMP=/tmp/vim.tmp alias -g V="> $VIM_TMP$$; vim $VIM_TMP$$"仕組みは簡単で、一時ファイルにコマンドの実行結果を保存して、vimでその一時ファイルを開いているだけです。一時ファイルを作っている所が、ちょっとダサ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く