0
1

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 3 years have passed since last update.

autocd ならぬ autocat (備忘録)

Last updated at Posted at 2020-07-10

やろうとしていること

bashからzshに乗り換えてみて,autocd(ディレクトリ名のみでcd)がとても便利だと感じた。だったら,ディレクトリ名だけじゃなくて,ファイル名でcatもできるようにしたいと思って試してみた。

設定ファイル追記

一応,zshの場合とbashの場合を書いておく。

zshの場合

以下を~/.zshrcに追記する。

.zshrc
#command not foundのとき
function command_not_found_handler() {
  #そのファイルが存在したら
  if test -e $1;    then
    #バイナリファイルなら
    if [ "$(file --mime-encoding -L $1 | awk '{print $2}')" = 'binary' ];  then
      #元々のステータスを表示
      echo "zsh: command not found: $1"
    #バイナリファイル以外なら
    else
      #catで中身を表示
      cat "$1"
    fi
  #ファイルが存在しなかったら
  else
    #元々のステータスを表示
    echo "zsh: command not found: $1"
  fi
}

command_not_found_handler(){}の中に書いた処理が,コマンドが存在しない時に実行される。

bashの場合

以下を~/.bashrcに追記する。

.bashrc
#command not foundのとき
function command_not_found_handle() {
  #そのファイルが存在したら
  if test -e $1;    then
    #バイナリファイルなら
    if [ "$(file --mime-encoding -L $1 | awk '{print $2}')" = 'binary' ];  then
      #元々のステータスを表示
      echo "bash: $1: command not found"
    #バイナリファイル以外なら
    else
      #catで中身を表示
      cat "$1"
    fi
  #ファイルが存在しなかったら
  else
    #元々のステータスを表示
    echo "bash: $1: command not found"
  fi
}

zshとは違い,command_not_found_handle(){}となる。

終わりに

これを使えばcatだけじゃなくてvimにするなど色々な処理が可能でかなり便利だ。しかし,あまり使わない。

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?