2002-06-13 (木)
■ HIST_IGNORE_ALL_DUPS -> 同じコマンドの history は履歴に入れない。 [zsh]
'setopt histignorealldups'して、'history'すると同じ履歴は消えているけど、
$HISTFILEの中身は消えてない。これは、デフォルトでは $HISTFILEの同期は
zsh プロセスが exit したときだから。INC_APPEND_HISTORY や SHARE_HISTORY を
有効にしていると、このタイミングが変わる。
SHARE_HISTORYは、直前の履歴を使い回すことが多い時は却って不便かもしれない。
マニュアルにあるように、適当なタイミングで 'fc -RI'する方が使い易いかも。
2002-07-24 (水)
2009-04-30 (木)
■ 漢の zsh [zsh]
zsh との付き合いは 7 年くらいになりますが、やはり補完が便利です。
tar のオプションを補完。
% tar ←ここで tab キー
A -- append to an archive
c -- create a new archive
f -- specify archive file or device
t -- list archive contents
u -- update archive
v -- verbose output
x -- extract files from an archive
make のルールを補完。
% make ←ここで tab キー
all check-syntax clean hoge.o hugahuga.o main.o
cd した履歴を補完。
% pwd
/home/masutaka
% cd /usr/local
% cd /home
% cd /etc
% cd -←ここで tab キー
0 -- /home/masutaka
1 -- /usr/local
2 -- /home
という前書きはさておいて、「漢の zsh」というコラムがあったので、
ざっと読んでみました。個人的に気になった設定をメモメモ。
▼「第6回: 漢はだまって先方予測 - あなたはこの機能使いこなせるか」より。
以下の設定をすると、コマンド入力時に携帯のかな漢字変換の先行予測の
ようなことをしてくれる。
autoload predict-on
predict-on
▼「第8回: これは既にシェルを超えている…… zshの算術演算」より。
expr コマンドを使わずに計算が出来る。
% echo $(( 1 + 2 + 3 + 4 + 5 ))
15
あらかじめ "zmodload -i zsh/mathfunc" を実行し、mathfunc モジュール
を読み込むと、以下のような sin 関数演算も出来る。
% echo $(( sin(1) ))
0.8414709848078965
sh では変数の型はすべて文字列だが、zsh では整数型や実数型もあるとのこと。
▼「第11回: zshはエディタか? - 「zed」でお手軽編集」より。
zsh には簡易エディタ機能も備えている。(あらかじめ "autoload zed" を
実行しておく必要がある。)
% zed hoge.txt
-f を指定すると、zsh の関数を編集出来る。
% zed -f function_name
実は zed 自体も zsh の関数で、自分自身を編集できてしまう。
% zed -f zed
▼「第15回: **で簡単ヒット!!! - 漢達への熱いお願い付き」より。
ワイルドカードの展開内容をその場で確認可能。
% cd /usr/*←ここで C-x g
/usr/X11R6 /usr/bin /usr/games /usr/include /usr/lib /usr/local /usr/sbin /usr/share /usr/src
ここまで書いておいて何ですが、実はたくさん設定をするのは好きではな
いです。ある程度満足したら、後はできるかぎり設定を少なくすることに
喜びを感じます。^^;
2009-08-22 (土)
■ screen で 最終行にウィンドウ一覧を表示する方法 [screen][zsh]
以下を ~/.screenrc に書くと、
hardstatus alwayslastline "[%02c] %`%-w%{=b bw}%n %t%{-}%+w"
こんな風に表示できます。

タブ表示みたいで良いですね。ウィンドウをいくつ開いているかよく忘れ
るので ^^; 、便利です。
参考情報:
GNU screen いろいろまとめ。 - naoyaのはてなダイアリー
追記20090823:
zsh ユーザの方は、以下を ~/.zshrc に書いておくと "zsh" という文字列
の代わりに「コマンド実行中はコマンド名を、未実行ならカレントディレ
クトリを表示」してくれます。情報ありがとうございます。> kitokitoki さん
case "$TERM" in
screen)
preexec() {
echo -ne "\ek#${1%% *}\e\\"
}
precmd() {
echo -ne "\ek$(basename $(pwd))\e\\"
}
esac
参考情報:
screenのキャプションにディレクトリ名 or コマンド名を表示 - メモの日々(2008-03-31)
最終更新時間: 2010-07-27 06:00


