ハイパーマッスルエンジニア

Vim、ShellScriptについてよく書く

builtin-commandsのmanの見方

f:id:rasukarusan:20200128175901p:plain:w400

man readとかするとbuiltin commandsのmanが出てきてしまって、read自体の説明にたどり着けない。

f:id:rasukarusan:20200128180049p:plain
我々が見たいのはこのmanではない

これはmanがないのではなく、ちゃんと別のところに書いてあるのでそれを覗きに行く。

bashの場合

使っているShellがBashならば下記でいける。

$ man bash

いつもどおりmanが開くので、そこでreadを検索すると見つかる。 ただ普通に検索していてはめちゃくちゃ面倒くさいので、下記のようにするとすぐ飛べる。

$ man bash | less -p "^       read "

だがしかしこのコマンドを毎回打つのも非常に面倒くさいので、関数にしちゃったほうが圧倒的楽。

# builtin-commandsのmanを参照
manbash() {
    man bash | less -p "^       $1 "
}

https://github.com/Rasukarusan/blog-assets/blob/master/builtin-commands/demo.gif?raw=true
manが見放題

zshの場合

Zshの場合は下記

$ man zshbuiltins

先ほどと同様にless -pを関数にしちゃうと良い。

# builtin-commandsのmanを参照
manzsh() {
    man zshbuiltins | less -p "^       $1 "
}

終わり

BashとZshでそれぞれmanbashmanzsh関数を作るのは嫌だったら、$SHELLでログインシェルを判別してzshbashかを分けてもいいと思う。

参考

bash - Where to view man pages for builtin commands? - Stack Overflow