コマンド・プロンプト上でBusyBoxを使いつつGitとNode.js

BusyBox本体と個別実行ファイルとしてインストール可能なコマンドの一覧

コマンド・プロンプトでなんとかなりそうにするためにタイトルのような構成にしてみている。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 loggit diffでの文字化けを解消するためにLC_ALL環境変数を作成し、その値をC.UTF-8にする。コマンド・プロンプト側でchcp 65001する必要はない。

Node.jsは特に設定の必要はない。Bashから使うことを考えなくて良いので、prefixなどの設定はデフォルトに戻した。


なんか変だなーと思うことはちょくちょくあるが、知らずにBashに依存した使い方をしていたりした。Vimからグレップする時にうまく動いてなかったのは引用符のせいだった。

nnoremap <Leader>/  :grep! ''<Left>

こういうマッピングにしていたので、検索文字列が一重引用符でコマンド・プロンプトに渡されていてうまく動いていなかった。コマンド・プロンプトで一重引用符が使えないことなどは忘却の彼方だった。

他におかしい時はだいたいConEmuのせいで壊れているので、環境としては大丈夫そうだ。


BusyBoxでは対話型シェルとしてashも入っている。ビープ音がうるさいくらいで、サクサク使える。他のOS向けのように各コマンドをシンボリック・リンクで作れるともっと良さそうだった。ちゃんとした環境が欲しいのならmakecurlがあるGOWやWSLの方がもちろん良いが、限られたUnix系のシェル・コマンドが欲しい場合ならBusyBoxでも良さそうだ。