主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ
書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。
2020/08/01
整えるというか、普段仕事で使っている macOS / Ubuntu に合わせるって言うのが近いけども。
Windows の環境をいろいろいじっていくメモ。
前提環境:
rustc -V
)ということでやっていきます。
基本的には、極力どの環境でも動く、かつデフォルトに近い設定で運用していくのをポリシーとしています。
ということで、まずは Starship を導入します。
シェル叩いてもいいのですが、私は Rust の環境を持っているので、 crates.io 経由で入れます。
$ cargo install starship
ビルド&インストールが完了したら、プロフィールに Starship の初期化スクリプトを追記します。
基本は %USERPROFILE%\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
にあります。
// 下記を一番下に追記
Invoke-Expression (&starship init powershell)
そして再読み込み
. $PROFILE
何もしなくても良い感じですね。
あとはお好みの starship.toml
を突っ込んであげましょう。
場所は %USERPROFILE%/.config/starship.toml
です。
$ curl https://raw.githubusercontent.com/mika-f/dotfiles/master/.config/starship.toml -o ~/.config/starship.toml
次はコマンド類を入れていきます。
この辺は好みのものを入れておけばいいと思います。
$ cargo install fd-find
$ cargo install lsd
$ cargo install ripgrep
そして alias を貼っておきます。
Set-Alias ls lsd
このままだと lsd の表示が悲しいままなので、 Nerd Fonts 対応フォントをいれます。
私はお試しで白源フォントを入れてみました。
ただ、このままだと一部コマンドが PowerShell の Alias になっていて、使い勝手が違っていて面倒なので、
Rust でのクロスプラットフォーム実装である uutils/coreutils
のものと置き換えます。
ただし、そのままインストールすると Multicall-Binary になっていて面倒なので、個別で入れます。
uutils/coreutils
の各パッケージは uu_command
の名前でレジストリに登録されているので、
必要なものを入れていきます。多いですね。
$ cargo install uu_cat
$ cargo install uu_cut
$ cargo install uu_cp
$ cargo install uu_date
$ cargo install uu_echo
$ cargo install uu_false
$ cargo install uu_head
$ cargo install uu_mkdir
$ cargo install uu_mv
$ cargo install uu_printenv
$ cargo install uu_pwd
$ cargo install uu_rm
$ cargo install uu_tail
$ cargo install uu_touch
$ cargo install uu_true
$ cargo install uu_uniq
$ cargo install uu_wc
$ cargo install uu_yes
ただ、このままだと PowerShell の alias だったり、 Windows のものだったりが呼ばれるので、
上記のもので置き換えるようにします。
# Replaced by Unix CoreUtils
function Replace-Alias($cmd) {
Get-Alias $cmd *>1 && Remove-Alias $cmd
}
Replace-Alias cat
Replace-Alias cp
Replace-Alias echo
Replace-Alias mv
Replace-Alias pwd
Replace-Alias rm
# Call CoreUtils CLI instead of Windows System Commands
function Call-CoreUtils($cmd) {
Set-Variable -name "CoreUtils_$cmd" -value "function $cmd() { $cmd.exe `$args }" -scope global
Get-Variable "CoreUtils_$cmd" -ValueOnly | Invoke-Expression
}
Call-CoreUtils mkdir
あと、 PowerShell の where
が気に入らないので、 where.exe
を which
で呼ぶようにします。
Set-Alias which where.exe
あとは便利ツールをいくつか
私は Golang の開発環境は持っていないので、おとなしく Scoop 経由で入れます。
$ scoop install gh
$ scoop install ghq
$ scoop install hub
こんな感じで、ある程度の動作は macOS / Ubuntu に合わせられました。
ということで今回は終わり。