5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

oh-my-zsh導入後にhistoryが全件表示されるのを解決する方法

Last updated at Posted at 2012-08-05

##問題と解決方法
oh-my-zshを導入すると、historyコマンドを入力した際に、コマンドの全履歴が表示されるようになります。
僕は毎回全件表示されるのはうれしくないので、以下の方法で標準の動きに戻しました。

~/.zshrc
alias history='fc -l'

またこの変更により、世間一般で使われているhistoryコマンドのオプションが普通に使えるようになります。

# 最新の20件を表示
% history -20
# 全件を表示
% history 1

##原因
全件が表示されたり、通常のオプションが効かなくなったりしてしまうのは~/.oh-my-zsh/lib/aliases.zshに以下の設定があるためです。

~/.oh-my-zsh/lib/aliases.zsh
alias history='fc -l 1'

ちなみにGithub上のコードはこちらです。
https://github.com/robbyrussell/oh-my-zsh/blob/master/lib/aliases.zsh

##裏話
この問題を解決できたのは@yaottiさんのコメントのおかげです。@yaottiさん、どうもありがとうございました!!

今回僕はこんな感じで原因を特定していきました。

  1. historyコマンドはfc -lと同じはず (@yaottiさん情報)
  2. alias historyでエイリアスを確認
  3. history='fc -l 1'と表示される (つまり全件表示)
  4. おかしい。特に自分でエイリアスを設定した記憶はない。oh-my-zshが原因か?
  5. まず手始めに~/.zshrcを読む
  6. ~/.oh-my-zsh/oh-my-zsh.rcが怪しいので読む
  7. ~/.oh-my-zsh/libの下で何か色々と設定を読み込んでいる
  8. grep history ~/.oh-my-zsh/lib/*で検索
  9. ~/.oh-my-zsh/lib/aliases.zsh:alias history='fc -l 1'が表示される。これが原因か!
  10. ~/.zshrcでエイリアスを上書きすることで解決!

なかなか苦労しましたが、これでスッキリしました。ついでにLinux/UNIXの勉強にもなりました。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?