便利なコマンドやカスタムしたシェル(fish)について


この記事は、Sunrise Advent Calendar 2019の3日目になります。

はじめに

今回は、快適なシェル操作をするために、便利なコマンドやターミナルのカスタム設定について書いていこうと思います。

便利なコマンド

bass

自分は普段fishを使っているので、bashコマンドがそのまま使えなくて困ることがあります。
そんな時、bassコマンドを使えば、fishシェルのままbashコマンドが使用できます。

使い方は、

$ bass export X=3

のような感じでbassの後にbashコマンドを入力するだけです。

GitHubリポジトリはこちら
FisherFundleOh My Fishのどれでも導入可能です。

bat

batコマンドは、多数のプログラミング・マークアップ言語の構文強調表示Git統合を備えたcatコマンドのようなものになります。

GitHubリポジトリはこちら

他の主な機能

Homebrewでのインストールコマンド

$ brew install bat

exa

GitHubリポジトリはこちら

exaコマンドは、ファイルの種類・メタデータを区別し色をつけ表示してくれるものになります。

lsコマンドとの違い

--gitオプションでGitのステータスも表示できる点です。

$ exa -ahl --git

のようにすると、以下のようにステータス表示されます。

Homebrewでのインストールコマンド

$ brew install exa

カスタム設定

alias以外のところでは、config.fishの以下の設定が気に入っています。

cdした後にls

config.fish
# cdした後にls
function cd
    if test (count $argv) -eq 0
        cd $HOME
        return 0
    else if test (count $argv) -gt 1
        printf "%s\n" (_ "Too many args for cd command")
        return 1
    end
    # Avoid set completions.
    set -l previous $PWD

    if test "$argv" = "-"
        if test "$__fish_cd_direction" = "next"
            nextd
        else
            prevd
        end
        return $status
    end
    builtin cd $argv
    set -l cd_status $status
    # Log history
    if test $cd_status -eq 0 -a "$PWD" != "$previous"
        set -q dirprev[$MAX_DIR_HIST]
        and set -e dirprev[1]
        set -g dirprev $dirprev $previous
        set -e dirnext
        set -g __fish_cd_direction prev
    end

    if test $cd_status -ne 0
        return 1
    end
    pwd
    ls -A
    return $status
end

おわりに

生産性を更に上げるためのシェル設定は奥が深いですよね〜
このコマンド・設定便利だよ!!などなどありましたらコメントしてくれると嬉しいです😀