コマンド・プロンプトでなんとかなりそうにするためにタイトルのような構成にしてみている。Unixコマンド群を手に入れるとすると、UnxUtilsかGnuWinかBusyBoxかだ。安定はGnuWin、簡便さはUnxUtilsに軍配が上がりそうだが、BusyBoxは気持ちいい。
BusyBoxのコマンド群をインストールする。
$ busybox --install %HOMEDRIVE%%HOMEPATH%\BusyBox
例のautoexec.bat
的なやつでBusyBoxとそのコマンド群をインストールしたパスを優先してやる。
@echo off
set PATH=%HOMEDRIVE%%HOMEPATH%\BusyBox;%PATH%
Git for WindowsでgVimを呼ぶためのシェルスクリプトを作り、PATHが通ったところに置く。
#!/bin/sh
/c/Program\ Files\ \(x86\)/Vim/vim80/gvim.exe $*
Gitから開くエディターの設定は、gVimをタブで開いて待つようにする。
$ git config --global core.editor "gvim -p --remote-tab-wait-silent"
git log
やgit diff
での文字化けを解消するためにLC_ALL
環境変数を作成し、その値をC.UTF-8
にする。コマンド・プロンプト側でchcp 65001
する必要はない。
Node.jsは特に設定の必要はない。Bashから使うことを考えなくて良いので、prefixなどの設定はデフォルトに戻した。
なんか変だなーと思うことはちょくちょくあるが、知らずにBashに依存した使い方をしていたりした。Vimからグレップする時にうまく動いてなかったのは引用符のせいだった。
nnoremap <Leader>/ :grep! ''<Left>
こういうマッピングにしていたので、検索文字列が一重引用符でコマンド・プロンプトに渡されていてうまく動いていなかった。コマンド・プロンプトで一重引用符が使えないことなどは忘却の彼方だった。
他におかしい時はだいたいConEmuのせいで壊れているので、環境としては大丈夫そうだ。
BusyBoxでは対話型シェルとしてashも入っている。ビープ音がうるさいくらいで、サクサク使える。他のOS向けのように各コマンドをシンボリック・リンクで作れるともっと良さそうだった。ちゃんとした環境が欲しいのならmake
とcurl
があるGOWやWSLの方がもちろん良いが、限られたUnix系のシェル・コマンドが欲しい場合ならBusyBoxでも良さそうだ。