Open3

WSL2環境整備で最初にやること

takeashiptakeaship

GitHub認証情報をWindowsとWSLで共有

この作業をすることで、WSL上でのGitの認証情報管理をWindowsの資格情報マネージャーに一任できる。
これにより、GitHubプライベートリポジトリからgit cloneしたときにブラウザが開き、GitHubへのログイン操作をするだけで、リポジトリへの操作が可能になる。
すなわち、SSH鍵をWSL上で発行・管理し、GitHubに登録する必要がなくなる。

1. Ubuntu上で次のコマンドを実行し、Windows側と認証情報を共有した状態にする

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager.exe"

Gitのインストール先を変えている場合は、/mnt 以下をそれに合わせて変更する

takeashiptakeaship

通信を安定させる

WSLはときどき外部との通信ができなくなり、パッケージインストール時などに固まって困ることがある。
これはWSLがデフォルトではDNSとして仮想ネットワーク内のアドレスを使っていることに起因する。このアドレスが不調だと名前解決に失敗する。
このため、常にGoogleのDNSである8.8.8.8を使うよう設定する。

参考: Node.js and NPM network dramatically slow

1. DNS設定がシステムに自動生成されないようにする

  • vim /etc/wsl.confで設定ファイルを開く
  • 次の設定を追記して保存
[network]
generateResolvConf = false

2. DNSを手動設定する

DNS設定を保持している/etc/resolv.confを書き換えて、常に8.8.8.8が使われるようにする。

sudo rm /etc/resolv.conf
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo chattr +i /etc/resolv.conf
takeashiptakeaship

Neovimの導入

VSCodeなどでNeovimを使うので、ここで入れてしまう。

1. インストール

sudo apt install neovim

2. win32yankの導入

NeovimのyankとWindows側のクリップボードを同期させる。

curl -sLo/tmp/win32yank.zip https://github.com/equalsraf/win32yank/releases/download/v0.0.4/win32yank-x64.zip
unzip -p /tmp/win32yank.zip win32yank.exe > /tmp/win32yank.exe
chmod +x /tmp/win32yank.exe
sudo mv /tmp/win32yank.exe /usr/local/bin/

3. win32yankの設定

cd ~/.config mkdir nvim && cd nvim
nvim init.vim

次を追記して保存する

set clipboard=unnamedplus