Windowsで開発できるようにするまでの個人セットアップ
はじめに
個人用です.もしかしたら誰かの役に立つかもくらいです.
見た目です.
OS をアップデートする.
以下のコマンドを打ちます.
winver
21H2
よりもバージョンが低かったら,Windows Update を実行します.Windows -> 更新とセキュリティ -> Windows Update からアップデートする.以下の種々の操作で必要になります.
パッケージマネージャーをインストール
winget[1] を入れます.一括アップデートとかができて便利です.
フォントをインストール(Cica)
お好みで等幅フォントをインストール.
僕は Cica が好きなので Cica を入れます.
Releases · miiton/Cica
Powershell(pwsh)をインストール
Powershell 7.x 系をインストール.
winget install --id Microsoft.Powershell --source winget
VSCode をインストール
winget install -e --id Microsoft.VisualStudioCode
画面右上の
をクリックして,プライマリサイドバーを右に変更します.サイドバーを開閉するときの視差を減らす目的です.
ターミナルエミュレーターをインストール(Hyper)
Hyper[2]を入れます.Alacritty[3] や Windows Terminal[4] なども候補に上がります.Hyper なのは,Windows Terminal は私用領域(PUA)の文字を半角で描画してしまい,Cica と相性が悪いからです.
winget install -e --id Zeit.Hyper
ターミナルを再起動して,Hyper のテーマを更新
hyper i hyper-material-theme
Hyper のシェルを pwsh にする.
code ~/AppData/Roaming/Hyper/.hyper.js
必要部分だけ抜き出します.
module.exports = {
config: {
shell: 'C:\\Program Files\\PowerShell\\7\\pwsh.exe',
shellArgs: [],
}
}
環境変数として,Hyper のコンフィグのパスを登録しておくと便利です.
code $PROFILE
$HYPER_CONFIG = "C:\Users\<user>\AppData\Roaming\.hyper.js
code $HYPER_CONFIG
で設定ファイルを開けるようになります.
プロンプトをインストール(Starship)
winget install -e --id Starship.Starship
code $PROFILE
ファイル末尾になるように以下を追記します.この行以降に書き込まないでください.
Invoke-Expression (&starship init powershell)
環境変数として,Starship のコンフィグのパスを登録しておくと便利です.
code $PROFILE
$STARSHIP_CONFIG = "C:\Users\<user>\.config\starship.toml"
code $STARSHIP_CONFIG
で設定ファイルを開けるようになります.
色々設定できるので,見てみてください[5].Cica は各言語のロゴのフォントがあるので,それに置き換えると見やすくなります.
設定例
文字化けは,Cicaフォントの私用領域です.
[git_branch]
symbol = " "
[git_status]
conflicted = "="
ahead = " "
behind = " "
diverged = " "
up_to_date = ""
untracked = "?"
stashed = "$"
modified = "!"
staged = "+"
renamed = " "
deleted = " "
[rust]
symbol = " "
[docker_context]
symbol = " "
[nodejs]
symbol = " "
[python]
symbol = " "
git
install
winget install -e --id Git.Git
ssh の設定
鍵を作成
ssh-keygen -t ed25519
クリップボードにコピー
Get-Content ~\.ssh\id_ed25519.pub | Set-Clipboard
SSH and GPG keysに,上で作ったキーを登録.
確認
ssh -T git@github.com
Tab で補完
posh-git をインストールします.インストールするか聞かれるのでY
と答えます.
Install-Module posh-git
設定ファイルを VSCode で開きます.
code $PROFILE
Import-Module posh-git
を書き込みます.
github-cli をインストール
プルリクエストの確認とかで便利なので.
winget install -e --id GitHub.cli
code $PROFILE
以下を追記します.
Invoke-Expression -Command $(gh completion -s powershell | Out-String)
Docker のインストール
インストール
まず,WSL2 を導入します.マシンを再起動して,WSL2 のインストールを完了させます.
wsl --install
Docker をインストールします.
winget install -e --id Docker.DockerDesktop
Docker Desktop を起動して,歯車をクリックして,設定を行います.
2 つ目のチェックは,docker-compose
をdocker compose
に置き換えるためのものです.
Tab で補完
補完用のモジュールをインストールします.
Install-Module DockerCompletion -Scope CurrentUser
code $PROFILE
以下を追記します.
Import-Module DockerCompletion
which コマンド
たまにほしいので追加します.
code $PROFILE
function which ($command) {
Get-command -Name $command -ShowCommandInfo | Format-List -Property Definition
}
参考[6]
キーバインドと入力候補補完を Zsh 風にする
[7]
pwsh設定ファイルに以下を追記します
code $PROFILE
Import-Module PSReadLine
Set-PSReadLineKeyHandler -Key "Ctrl+d" -Function DeleteCharOrExit
Set-PSReadLineKeyHandler -Key "Ctrl+u" -Function BackwardDeleteLine
Set-PSReadLineKeyHandler -Key "Ctrl+k" -Function ForwardDeleteLine
Set-PSReadLineKeyHandler -Key "Ctrl+a" -Function BeginningOfLine
Set-PSReadLineKeyHandler -Key "Ctrl+e" -Function EndOfLine
Set-PSReadLineKeyHandler -Key "Ctrl+f" -Function ForwardChar
Set-PSReadLineKeyHandler -Key "Ctrl+b" -Function BackwardChar
Set-PSReadLineKeyHandler -Key "Alt+f" -Function NextWord
Set-PSReadLineKeyHandler -Key "Alt+b" -Function BackwardWord
Set-PSReadLineKeyHandler -Key "Ctrl+p" -Function PreviousHistory
Set-PSReadLineKeyHandler -Key "Ctrl+n" -Function NextHistory
Set-PSReadLineKeyHandler -Key "Tab" -Function MenuComplete
[8]
VSCodekeybindings.json
VSCode 上でCtrl+Shift+P
を押下,> Preferences: Open Keyboard Shortcuts (JSON)
をクリックして,以下の JSON を書き込みます.
[
{
"key": "ctrl+d",
"command": "deleteRight",
"when": "terminalFocus"
},
{
"key": "ctrl+h",
"command": "deleteLeft",
"when": "terminalFocus"
}
{
"key": "ctrl+p",
"command": "cursorUp",
"when": "terminalFocus"
},
{
"key": "ctrl+n",
"command": "cursorDown",
"when": "terminalFocus"
},
{
"key": "ctrl+f",
"command": "cursorRight",
"when": "terminalFocus"
},
{
"key": "ctrl+b",
"command": "cursorLeft",
"when": "terminalFocus"
},
{
"key": "ctrl+a",
"command": "cursorHome",
"when": "terminalFocus"
},
{
"key": "ctrl+e",
"command": "cursorEnd",
"when": "terminalFocus"
}
]
Ctrl + T
相当の関数を知っている方がいたら教えてください.
pwsh コンフィグコピペ用
Microsoft.PowerShell_profile.ps1
Import-Module posh-git
Import-Module DockerCompletion
Import-Module PSReadLine
Set-PSReadlineKeyHandler -Key "Ctrl+d" -Function DeleteCharOrExit
Set-PSReadLineKeyHandler -Key "Ctrl+u" -Function BackwardDeleteLine
Set-PSReadLineKeyHandler -Key "Ctrl+k" -Function ForwardDeleteLine
Set-PSReadLineKeyHandler -Key "Ctrl+a" -Function BeginningOfLine
Set-PSReadLineKeyHandler -Key "Ctrl+e" -Function EndOfLine
Set-PSReadLineKeyHandler -Key "Ctrl+f" -Function ForwardChar
Set-PSReadLineKeyHandler -Key "Ctrl+b" -Function BackwardChar
Set-PSReadLineKeyHandler -Key "Alt+f" -Function NextWord
Set-PSReadLineKeyHandler -Key "Alt+b" -Function BackwardWord
Set-PSReadLineKeyHandler -Key "Ctrl+p" -Function PreviousHistory
Set-PSReadLineKeyHandler -Key "Ctrl+n" -Function NextHistory
# Zsh like completion
Set-PSReadLineKeyHandler -Key "Tab" -Function MenuComplete
function which ($command) {
Get-command -Name $command -ShowCommandInfo | Format-List -Property Definition
}
$HYPER_CONFIG = "C:\Users\<user>\AppData\Roaming\.hyper.js"
$STARSHIP_CONFIG = "C:\Users\<user>\.config\starship.toml"
Invoke-Expression -Command $(gh completion -s powershell | Out-String)
Invoke-Expression (&starship init powershell)
Discussion