0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MacユーザーがWindows PCでの作業を余儀なくされた時にやったこと

0
Posted at

はじめに

長年MacBookで開発してきたが、案件の都合でWindows PCでの作業に切り替わることになった。
「うっ・・・」となったMacユーザー向けに、最初にやるべき設定と注意点をまとめる。

対象読者: 長年Macを愛用されてきたエンジニアで、
普段はMacのターミナル中心の開発スタイルに慣れている人。Vimmer。

TL;DR

  • 実際の開発作業(Python実行、git、Docker、venv操作)は WSL2 (Ubuntu) に寄せる
  • PowerShellはWindows自体の管理・軽い作業用と割り切る
  • ショートカットキーの再割り当てには PowerToys を使う
  • 改行コード・大文字小文字の扱い・パス区切りの違いに注意する
  • Vimはaptで即インストールでき、クリップボード連携だけ少し工夫が必要
  • 案件先支給PCの場合、OSをまるごと入れ替えるのはNGな場合が多いので事前確認する

1. 開発基盤のセットアップ

WSL2(Windows Subsystem for Linux)

Macのbash/zsh環境に一番近い体験を得られる。Ubuntuを入れて、Python・Docker・Gitなど
実際の開発作業はここで行うのが定番。

wsl --install

Windows Terminal

PowerShell・WSL・Git Bash・SSHなどを複数タブで切り替えられるので最初に導入しておく。

Git / Python環境の再構築

git config --global user.name "your name"
git config --global user.email "you@example.com"

pyenv(Windowsでは pyenv-win、WSL内なら通常のpyenv)や poetry / pipenv を入れ直す。

VS Code

Macと共通で使えるエディタなので、Settings Sync をオンにしておけば拡張機能・
キーバインド・スニペットがそのまま移行できる。WSL Remote拡張を使えば、
WSL内のファイルをそのまま開発できる。

Docker Desktop

WSL2バックエンドを選択すること。Hyper-V経由よりパフォーマンスが良く、
Docker ComposeやTerraformもWSL側で動かすのが安定する。

2. キーボード・操作系のカスタマイズ

MacのCommandキー中心の操作からCtrl中心に切り替わるため、最初の数週間は指が迷う。

主要ショートカット対応表

操作 Mac Windows
コピー Command+C Ctrl+C
貼り付け Command+V Ctrl+V
アプリ切替 Command+Tab Alt+Tab
スクリーンショット Command+Shift+3/4 Win+Shift+S
検索起動 Command+Space Winキー単押し

PowerToys

Microsoft公式の無料ツール。「Keyboard Manager」でショートカットの再割り当てが可能。
日本語入力のオン/オフ切替に慣れている場合、AutoHotKeyで似た挙動
(Ctrl空打ちでIME切替など)を再現するスクリプトもある。

3. データ・設定ファイルの移行

  • dotfiles・SSHキー: .ssh.gitconfigなどはgitやクラウドストレージ経由で移す
  • ユーザー辞書・環境変数: Windows側はエクスポート/インポートやregファイルでの
    環境変数バックアップが可能
  • .env等gitに含めていないファイル: 事前にリストアップしておく

4. 特に気をつけたい技術的な差異

改行コード(CRLF/LF)

GitやDjangoのファイルでCRLFが混入すると、Linuxサーバーとの差分が出やすい。
.gitattributes で以下を設定し、VS Codeの改行設定もLFに統一しておく。

* text=auto

ファイル名の大文字小文字

macOSはデフォルトで大文字小文字を区別しないことが多いが、WSL上のLinuxファイル
システムは区別する。インポート時のファイル名衝突・参照ミスに注意。

パス長・パーミッション

Windowsネイティブ側はパス長制限やUnixパーミッション(chmod)の概念が薄い。
DockerボリュームやスクリプトをWSL側で動かすかネイティブ側で動かすか、
最初に方針を決めておくと混乱が減る。

セキュリティソフトの除外設定

Windows Defenderのリアルタイム保護が node_modules や仮想環境フォルダの
スキャンでビルドを遅くすることがある。開発用フォルダを除外設定に入れると
高速化できる。案件PCの場合は会社のセキュリティポリシーを先に確認すること。

5. PowerShellとの付き合い方

PowerShellは「Windows自体の管理・軽い作業」用と割り切り、実際の開発作業は
WSL2に寄せるのがおすすめ。

用途 推奨シェル
Python/Django開発、Docker、Git操作 WSL2内のbash/zsh
Windowsの設定変更、サービス管理 PowerShell
通常のファイル操作 どちらでもOK

スクリプト(.ps1)を実行する場合、初期状態では実行ポリシーでブロックされている
ため、管理者権限で以下を一度実行しておく。

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

6. Vimのセットアップ

MacではHomebrewで一発だったVimも、WSL2上ならほぼ同じ感覚で導入できる。

インストール

sudo apt update
sudo apt install vim

より高機能な後継としてNeovimを使いたい場合は以下。

sudo add-apt-repository ppa:neovim-ppa/unstable
sudo apt update
sudo apt install neovim

クリップボード連携で詰まりやすいポイント

WSL2は素の状態だとVimのヤンク(コピー)内容がWindows側のクリップボードと
共有されない。以下のいずれかで解決できる。

  • win32yank を使う(手軽な方法): win32yank.exeをダウンロードし、
    Neovimのinit.vimやVimの.vimrcでクリップボードプロバイダとして設定する
  • クリップボードオプション付きでVim自体をビルドし直す(本格的な方法):
    VcXsrvなどのX Serverと組み合わせて+clipboardを有効にする

日常的な開発用途であれば、win32yankを使う方法で十分。

curl -fLO https://github.com/equalsraf/win32yank/releases/download/v0.0.4/win32yank-x64.zip
unzip win32yank-x64.zip -d win32yank
chmod u+x win32yank/win32yank.exe
sudo mv win32yank/win32yank.exe /usr/local/bin/win32yank

VS Code + Vimキーバインド

エディタ自体はVS Codeを使いつつ、Vimの操作感を活かしたい場合は
vscode-neovim拡張を使うと、実際のNeovimエンジンで動作するため
プラグインや.vimrcの設定もほぼそのまま活かせる。

7. さらに踏み込む場合: OSごと入れ替える選択肢

Windowsを完全に消してUbuntu等に入れ替える、あるいはデュアルブートにするという
選択肢もある。

方法 内容 向いているケース
Windowsを完全に消してUbuntu等に入れ替え USBブートメディアからクリーンインストール 私物PCで今後Windowsを使わない
デュアルブート WindowsとLinuxを両方残し起動時に選択 どちらも使う可能性がある
WSL2でLinuxを共存 Windowsを消さずLinuxカーネルを仮想的に動かす Windows前提の業務ツールも使う必要がある

注意: 案件先から支給・レンタルされたPCの場合、OSをまるごと入れ替えるのは
契約違反やセキュリティポリシー違反になり得るため、必ず事前に確認すること。
私物PCでない限りは、WSL2での運用にとどめるのが無難。

8. 手順まとめ

作業の流れを時系列でチェックリスト化した。上から順に進めればつまずきにくい。

# フェーズ やること 目安タイミング
1 事前確認 私物PCか案件先支給PCかを確認し、OS変更やセキュリティポリシーの制約を把握する 着任前
2 バックアップ dotfiles・SSHキー・.env・ユーザー辞書・ブックマークなどをクラウド/外部ストレージへ退避 着任前
3 基盤導入 wsl --install でWSL2導入、Ubuntuをセットアップ 初日
4 ターミナル整備 Windows Terminalを導入し、PowerShell・WSL・SSHをタブで使えるようにする 初日
5 エディタ移行 VS CodeをインストールしSettings Syncを有効化、WSL Remote拡張を追加 初日〜2日目
6 開発環境構築 WSL内でgit・pyenv・poetry(pipenv)・Dockerを再構築し git config を設定 2日目
7 Docker設定 Docker DesktopをインストールしWSL2バックエンドを選択 2日目
8 Vim導入 apt install vim(またはneovim)、win32yankでクリップボード連携を設定 2〜3日目
9 ショートカット調整 PowerToys(Keyboard Manager)導入、Mac→Windowsのキー対応を設定 2〜3日目
10 IME調整 必要ならAutoHotKeyで日本語入力切替の挙動を再現 2〜3日目
11 Git設定の安全策 .gitattributes に改行コード設定を追加、VS Codeの改行設定をLFに統一 3日目
12 セキュリティ調整 Windows Defenderの除外設定に開発用フォルダを追加(案件PCなら要許可確認) 3日目
13 PowerShell初期設定 必要に応じて Set-ExecutionPolicy RemoteSigned -Scope CurrentUser を実行 必要になった時点
14 動作確認 既存プロジェクトをcloneしてビルド・テストが通ることを確認 1週目終わりまで
15 (任意)OS再検討 私物PCで今後もLinux中心にしたい場合、デュアルブートや完全移行を検討 運用が安定してから

まとめ

  • 開発作業はWSL2に寄せる、PowerShellはWindows管理用
  • Vimはaptで即導入、クリップボードだけwin32yankでひと工夫
  • PowerToysでショートカットを慣らす
  • 改行コード・大文字小文字・パーミッションの違いに気をつける
  • 案件PCなら勝手にOSを吹き飛ばさない

以上、同じ境遇のMacユーザーの参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?