79
77

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Windowsマシンの開発関係セットアップ

Last updated at Posted at 2016-07-20

最近メインの開発環境を Windows 10 にしたので、入れたソフトウェアのメモ。

MSYS2

UNIX的なシェル環境。ターミナル(mintty)、シェル(bash)、パッケージマネージャ(pacman)が標準で入れるだけで使えるようになる。シェル操作は MYSY2 上に含まれる ターミナル mintty 上で bash を動かしてその上で screen やら git やら ssh やらいろいろ。

にまとめれているので、その他いくつかを。

ホームディレクトリ

標準だと C:\mysy64\home\ユーザ名 だが、自分は %USERPROFILE% (win のユーザディレクトリ)と同一のところをホームディレクトリとして使いたいので、環境変数 HOME を %USERPROFILE% に指定する。(環境変数 HOME は UNIX 環境の ENV での指定ではなく、windows 側の詳細設定での指定)

見た目

そのままだと見にくいので ~/.minttyrc で色やフォントを指定する。この .minttyrc 例ではフォントは Ricty Diminished を使ってる。

パッケージのインストール

pacman で。update-core で最新にした後 mintty を再起動し、最新のパッケージを入れていく。とりあえず最低必要そうなのを適当に。

pacman -S vim git wget tmux ruby tar

ssh

普通に ~/.ssh/鍵 を置けば使える、が OpenSSH が環境変数 HOME は見ずに、直接 /home/ユーザ名 を見るため、上記の設定でホームディレクトリを変更した場合は対応が必要。

/etc/fstab に設定を書き込んで対応した。

C:/Users /home ntfs binary,noacl,auto 1 1

keychain

毎回 ssh (git fetch とかでもね)するとパスワード聞かれて面倒なので ssh-agent 管理の keychain を入れる。

これで毎回パスワードを聞かれず (ssh 経由の) git fetch できる。

cmder

そのままの cmd.exe が使いにくいので、それをラップするため cmder を使う。

様々な機能を持ってるが、ヒストリー検索と、ターミナルキーバインドが cmd.exe でも使えるだけでも利用価値が高い。

なお msys2 も Cmder 上で使おうと思ったが、tmux や screen が使えない、挙動が怪しいため断念した。

Vim

gvim は香り屋版、ターミナルでの vim は前述の MYSY2 の pacman で入れた vim を使ってる。MacOS などと dotifile は共有して使ってるため、それらを hardlink / symlink して使う

.vimrc, .gvimrc は ~/_vimrc, ~/_gvimrc へと hardlink を張る。

fsutil hardlink create %USERPROFILE%\_vimrc %USERPROFILE%\dotfiles\vim\.vimrc
fsutil hardlink create %USERPROFILE%\_gvimrc %USERPROFILE%\dotfiles\vim\.gvimrc

.vim は ~/.vim へ symlink を張る。こちらは管理者権限が必要。

mklink /d %USERPROFILE%\.vim %USERPROFILE%\dotfiles\vim\.vim

キーボードカスタマイズ

Change Key

まずは Change Key でレジストリレベルでの単体キーを押したときのキーコードの変更を。Ctrl <-> Caps Lock とか、その他簡単な変更のみなら Change Key (管理者権限で実行する) で対応する。

なお Win は Vista 以降キーボードのカスタマイズがいろいろ大変になった。詳しくは Vista/Windows 7におけるキーボードカスタマイズ問題 を。

keyhac

python でコンフィグを指定できカスタマイズできる、ユーザモード上で動くソフトウェア。AutoHotKey のようにいろんなことができる。三ヶ月ぐらい使ってるけど、そんなに複雑なこともしていないためか、特に不安定になることなく使えてる。

たとえば mintty.exe のみでキーバーインドを変更したい場合 (LWin-c でコピー、LWin-v でペーストなど)、こんな感じに変えられる

        mintty_keymap = keymap.defineWindowKeymap( exe_name="mintty.exe", class_name="mintty" )
        # copy
        mintty_keymap["LWin-c"] = ["C-Insert"]
        # paste
        mintty_keymap["LWin-v"] = ["S-Insert"]
        # new window
        mintty_keymap["C-S-t"] = ["A-F2"]

右ALTキーでATOKのIME切り替えをトグルする

右ALTキーでATOKのIMEのオンオフをトグルしたいだけ、なんだけど以外と大変だったのでメモ。

まず Change Key で右ALTを普段使わない F13のスキャンコード ( 0x0064 ) を割り当て、右ALTをF13に変更する。

続いて F13 が押されたときに Ctrl-Shift-F12 を送出するように keyhac で変更する。124 は keyhac の内部ログをオンにすると押された値がわかるのでそこから。

    keymap_global = keymap.defineWindowKeymap()
    # 124 = F13, C-S-F12 = IME on/off
    keymap_global[ "124" ] = "C-Shift-F12"

あとは ATOK の設定で IME on/off を C-S-F12 にすればおk。

Windows 上での開発雑感

移行してだいたい3ヶ月ぐらいたつけど、Mac と比べそれほど不便なく開発できてる。

Win 環境を使い始めたのは、組み込み開発のハードウェアベンダーが提供してるツール群が Windows のみ、というものが割とあって、それをすんなり使いたかったのが一つ。もう一つは最近 Win 周りの開発者を取り巻く環境が面白そうだなー、と思ったのが一つ。

結局のところ Linux 的な Web 開発は、 仮想環境上の Ubuntu で行ってるんだけど、裏を返せば Windows Subsystem for Linux の出来がよくなれば、それも必要なくなるなー、という感じがしてる。

79
77
1

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
79
77

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?