Windowsフリーウェアのセットアップメモ
このページでは、Windowsで動くフリーウェアのいくつかについて、インストール、初期設定方法等をメモっています。

Ripgrep
Cygwin
MinGWとMSYS
その他


Ripgrep

Ripgrepはコマンドラインの高速なテキスト検索ツールで、その名の通りgrepの強化版といえます。 高速である点の他、起点ディレクトリ以下のサブディレクトリ内のファイルも再帰的に全て検索してくれる点が素晴らしいです。
RipgrepはLinux、MacOS、Windowsでバイナリ配布されているので、すぐに利用できます。 Windows版は 公式ダウンロードページで入手できます。 ファイル名にmsvcとgnuと付く物があり、msvcの方がサイズが小さいです。 これはmsvcはWindows標準DLLに一部依存するためで、通常はこちらを利用すればよいと思います。
使い方も簡単。Ripgrepの実行形式は「rg.exe」で、grepと同様に

cd \data\起点ディレクトリ
rg 検索文字列

で検索できます。
なお、RipgrepはデフォルトでASCIIとUTF-8の文字列だけを検索できます。 シフトJISの文字列を検索したいときは

rg --encodging sjis 日本語の検索文字列

とします。(--encodingの代わりに-Eも使えます)

その他のオプションの内、よく使うものを挙げてみます。
オプション意味
-l該当行があるファイル名だけを表示する
-c該当したファイル名と行数を表示する
-e検索文字列(1つの場合は省略可)
-i英大文字小文字を区別しない
-v該当「しない」行を検索する
-t {type}{type}に該当するファイルのみ検索する(java,html,sql等指定可能)
--type-list指定可能な{type}の一覧を表示する
-g {glob}{glob}に該当するファイルのみ検索する。先頭に!を付けると除外する
-z圧縮ファイル内も見る
-E encoding文字コード指定
--sort pathパスの昇順(他にcreated,modified等指定可)
--sortr pathパスの降順(他にcreated,modified等指定可)
したがって例えば 「カレントディレクトリ以下を、oldというサブディレクトリの中は除外し、 "Apple"か"Melon"か"Orange"の語を含む行を抽出し、パスの降順に、シフトJISで表示する」 には

rg -g !old -e Apple -e Melon -e Orange -E sjis --sort path

とします。


Cygwin

Cygwinは、Windows上でUNIX環境(GNUソフトウェアで構成したPC-UNIX環境に近いもの) をエミュレートするソフトウェア群です。 エミュレートというのは、

  • gccコンパイラやautoconf、makeなどのGNU開発ツールをはじめ、 diff、grep、findなどなどのUNIXでおなじみの標準ユーティリティの移植
  • コマンドライン環境はbash
  • UNIXのlibcライブラリ、システムコールなどPOSIX規定の機能のエミュレート
  • シンボリックリンク、マウントなど、UNIXファイルシステムのエミュレート
などが含まれます。Cygwinでは、 cygwin1.dllというDLLがPOSIXのAPIをWindows APIに変換して実行しています。 したがって、Cygwinのgccでコンパイルしたプログラムは、 cygwin1.dllがないと動作しません。ただし、gccでのコンパイル時に -mno-cygwin オプションをつけると、cygwin1.dllを必要としないEXEをビルドしてくれます。

Cygwinは元々Cygnus Solutionsという企業で開発されていましたが、 RedHatに買収されたため、現在は RedHatで開発が行われています。 ここでインストールしたCygwinのバージョンは、1.3.6.6 です。

  1. Cygwinのソフトウェアは全体ではたいへん巨大です。 そこで、トラフィックの軽い場所や時間を狙ってネットワークインストールを行います。 ダウンロードページで 「setup.exe」をダウンロードします。
  2. setup.exeを起動すると、小さなウィンドウが現れ、 まずインストールパスを聞いてきます。 ここで「C:\」とすると、それは危ないからというので警告されます。 最も一般的なインストールパスは「C:\Cygwin」(/cygwin)です。 ここでもこの位置を入力しました。
  3. 初期インストールしたいソフトウェアを適当に選択してチェックボタンにチェックを入れていきます。 cygwinとbashは必須、開発環境を考えるなら gcc、make、fileutils はほぼ必須でしょう。他にもperlなどもダウンロードできますよ。 面倒ならできるだけ多くを選択するようにしたほうが手間が省けると思います。
  4. ダウンロードが始まるので、じっと待ちます。
  5. ダウンロードが完了すると、自動的にアーカイブの展開とインストールが行われます。
  6. 再びダイアログが現れます。 「アイコンの追加」「スタートメニューに追加」にチェックを入れると、 それぞれそのようにしてもらえます。
  7. 最後に「Install Complete」というダイアログが現れれば、 インストールは完了です。
  8. といっても、これだけでは動きません。 C:\cygwin\bin を環境変数PATHに追加する必要があります。 そして、スタートメニューかアイコンから「Cygwin Bash Shell」 を実行して、bashのようなコマンドプロンプトが出てくればOKです。 ファイルシステムの構造ですが、 Windows上での C:\Cygwin\sample\path が /sample/path というように対応しています。 Cygwinの「外の」一般のWindowsファイルシステムにアクセスするには、 「/cygdrive/c」が C:\ に相当します。 しかし、Cygwinのドキュメントでは、 Windows一般のアプリケーションがCygwinファイルシステム内にアクセスすることや、 CygwinアプリケーションがWindows一般のファイルシステム内にアクセスすることについて、 できるだけしないように警告しています。


MinGWとMSYS
Minimalist GNU for Win32 (MinGW)は、 GNU GCCコンパイラとヘッダファイル、バイナリユーティリティ(GNU binutils) その他のビルドツールをMS-Windows環境に移植したもので、 Windowsネイティブの実行形式をビルドすることができます。 上記のCygwinとよく似ていますが、CygwinはCYGWIN.DLLという、 POSIXエミュレーション・レイヤーDLLを介して実行を行うのに対し、 MinGWではビルドされた実行形式はMS製のコンソールランタイム (MSVCRT.DLLとCRTDLL.DLL)を使います。 CygwinとMinGWの違いは(私のように)混同している人が多いためか、 このページで丁寧に説明されているので、 ゼヒ一読されることをお勧めします。

MinGWと同じwww.mingw.orgで開発されているパッケージにMSYS (Minimal SYStem)とゆーものもあります。 MinGWはほんとにコンパイラとその周辺ソフトウェアだけなので、 例えばGNUのフリーウェアを「configure→make→make install」 しようとするとハタと困ってしまいます。 gzip、tar、sedやawk、findなどなど、そしてもちろんinstallというコマンドがないと、 configure→make→make installの仕組みはうまく動きません。 そこでMSYSの出番。MSYSはごく簡単に言うと、 UNIX開発環境を構築するに足るフリーウェア群(GNU awkやGNU fileutilsなど) をMinGWのgccであらかじめビルドしてくれたもの(.exe)が入っている、 とても便利なパッケージです。 MinGWを使ってGNUフリーウェアをインストールする場合などは、 MSYSも必須となるでしょう。

なにはともあれ、MinGWとMSYSを導入してみます。 ここで試した環境は、Windows 7 Home Premium、MinGW-5.1.6、MSYS-1.0.15です。

  1. www.mingw.orgから、 mingw-get-inst-20100909.exe をダウンロードして実行します。 (実行も必ずインターネット接続環境で)
  2. インストール位置を聞かれるので、適当に指定します。ここでは C:\Wintools\Mingw と指定したとします。
  3. インストールする内容を選ぶ画面が出ます。 最初は「C Compiler」だけにチェックが入っているので、 「MSYS Basic System」(少し前のバージョンでは MSYS System でした) にもチェックを入れて、次に進みます。
  4. 自動的にファイルがダウンロードされて、MinGWインストールは終了です。
  5. 「スタートメニュー」⇒「MinGW」⇒「MinGW Shell」を実行します。 これがMSYSのシェルです。 最初はホームディレクトリ(~)にいると思います。 この場所は、ドライブ上では C:\Wintools\MinGW\msys\1.0\home\{自分のWindowsアカウント名} にあたる場所になります。
    MSYSもCygwinと同じように、独自の仮想的なファイルシステムを持っています。 そのルートディレクトリ(/)はMSYSのインストールディレクトリ、 上の例でいえば C:\Wintools\msys\1.0 で、 その下のWindowsファイルシステム上のパスがそのままMSYSファイルシステムでもたどれます。
    C:\を見たい場合は「/c/」、D:\を見たい場合は「/d/」 にcdすればOKです。
また、MSYSは擬似的なマウントの仕組みも持っています。 /etc/fstab (C:\Wintools\msys\1.0\etc\fstab) をテキストエディタで見ると、

C:/Wintools/MinGW /mingw

のように書かれているはずです。これすなわち、 C:\Wintools\MinGW がMSYSのファイルシステム上では/mingwに見えるという意味です。 そこで、/etc/fstabを編集して、例えば

C:/Wintools/MinGW /mingw
C:/usr/watasi /home/watasi

とすれば、C:\usr\watasi が MSYSのファイルシステム上では /home/watasi に見えます。ただし、普通のUNIXのマウントポイントと同じく、 MSYS上でのマウントポイント (上の例では /home/watasi = C:\usr\watasi) は、事前にmkdirコマンドで空ディレクトリとして作っておく必要があります。


MDIE
タブ型ファイラーのMDIEのよくある初期設定です。

  • 表示⇒ツールバーでリンクバーとアドレスバーを非表示
  • 表示⇒サイドバー⇒フォルダでフォルダを表示
  • オプションで「ウィンドウ位置を保存する」にチェック。
  • カスタマイズで「前回終了時のタブを復元する」にチェック。


X-Finder
初期設定
タブ型ファイラーのX-Finderのよくある初期設定です。

  • フォルダツリーの表示…ツール⇒基本オプション⇒ツリーで「フォルダツリー」にチェック。
ショートカットキーの追加
ファイルを選択してCTRL+Lキーを押すと、好きなエディタで開くようにする設定の追加方法です。
  1. メニュー「ツール」⇒「キー」で開いた「キー」フォルダ内で右クリック⇒「ファイルの作成...」
  2. 「キー」ウィンドウの各項目に、次のように入力します。
    • 名前:「エディタで開く」(任意)
    • パス:好きなエディタのEXEの絶対パス
    • 拡張:右の「kb」というボタンを押し、CTRL+Lキーを押すと「CTRL+L」 という文字が出るので、その状態で「OK」
    • 動作:「パスにフォーカス項目を渡して実行」を選択
現在のフォルダをコマンドプロンプトで開く
「今表示しているフォルダに最初から来ている状態でコマンドプロンプトを開く」 ショートカットキーを追加する方法です。
  • メニュー「ツール」⇒「キー」で右クリック⇒「既存コマンドの作成」⇒「メモ帳」
  • 右クリック⇒プロパティで、パスを「%ComSpec%」に、動作を「パスを実行」に、送る動作を「標準」に変更する。
  • 後は拡張で上と同じ方法でCTRL+Mなど好きなキーに割り当てればOK。
お気に入りの階層化
お気に入り(ブックマーク)を大量に登録して収まりきらなくなったら、 階層化したいもの。X-Finderでの操作はかなり複雑なのですが、一応可能です。
ここでは「◆分類A」というフォルダを作り、 その中に「C:\work\報告資料」を登録する操作例を示します。
  1. メニュー「お気に入り」⇒「お気に入りの整理」で「お気に入り」フォルダを開く。
  2. その中で右クリック⇒「フォルダの作成」で「◆分類A」を作る。
  3. 「◆分類A」を選択して右クリック⇒「パスに移動」すると、「◆分類A.ini」という見出しのタブになる。
  4. 他のタブに戻って、C:\work\報告資料を「お気に入りに登録」する。
  5. もう一度別に「お気に入りの整理」を開いて、「お気に入り」と「◆分類A.ini」 のタブが両方開いた状態にする。
  6. 「お気に入り」内の「報告資料」を、「◆分類A.ini」にドラッグ・ドロップなどでコピーする。
  7. 「お気に入り」内の「報告資料」はDELETEキーなどで削除する。
ややこしいですけど、これで完了です。


Windows版AWK
Windows版のAWKは各所で様々なバージョンが配布されています。
使いやすいのは https://code.google.com/archive/p/gnu-on-windows/downloads で配布されているGawk(GNU AWK)のバージョン4.1.0だと思います。
使い方も簡単。ダウンロードして展開すればgawk.exeが1個出てくるだけです。


Lhaplus
圧縮アーカイバLhaplusのよくある初期設定です。

  • lhaplus.exeを実行し、解凍設定と圧縮設定を 「アーカイブファイルと同じフォルダ」に変更


TeraPad
テキストエディタTeraPadのよくある初期設定です。

  • オプションの「ルーラー/行番号」で 「標準モード時は非表示」のチェックを外す (常に行番号が表示されるようにする)


Xpdf(pdftotext)
Xpdfに含まれるpdftotextは、コマンドラインでPDFファイルから文字列を抽出できるプログラムです。
ただしPDFファイルが「編集を許可しない」設定になっていると動作しません。
Windows8.1へのバイナリ配布のインストール手順です。

  1. こちらから、 "xpdfbin-win-3.04.zip"と、"xpdf-japanese.tar.gz"をダウンロードして展開します。
  2. 前者をC:\Wintools\xpdfbin-win-3.04 に置き、 後者をC:\Wintools\xpdfbin-win-3.04\japanese に置きます。
  3. 次の"xpdfrc"(拡張子なし)ファイルを作り、bin32かbin64、 実行するEXEファイルがある方に配置します。

    textEncoding UTF-8
    cidToUnicode    Adobe-Japan1    /Wintools/xpdfbin-win-3.04/japanese/Adobe-Japan1.cidToUnicode
    unicodeMap  ISO-2022-JP /Wintools/xpdfbin-win-3.04/japanese/ISO-2022-JP.unicodeMap
    unicodeMap  EUC-JP      /Wintools/xpdfbin-win-3.04/japanese/EUC-JP.unicodeMap
    unicodeMap  Shift-JIS   /Wintools/xpdfbin-win-3.04/japanese/Shift-JIS.unicodeMap
    cMapDir     Adobe-Japan1    /Wintools/xpdfbin-win-3.04/japanese/CMap
    toUnicodeDir            /Wintools/xpdfbin-win-3.04/japanese/CMap
    

  4. 後は次のコマンドラインで実行できます。
    C:\Wintools\xpdfbin-win-3.04\bin64\pdftotext test.pdf test.txt
なお、エンコーディングに「Shift-JIS」を指定すると、 半角英数字が全て全角に変換されてしまうようです。 これを解決するには、(私は未実施ですが) こちら にあるように、 Shift-JIS.unicodeMap ファイルをテキストエディタで編集して修整する必要があるようです。
また、改ページ個所はどうやって分かるの? というと、一般的なテキストエディタでは全く見えませんけれども、 改ページ位置には改ページ文字0x0cが挿入されています。 (バイナリエディタなどで見ると、改行を表す0x0d 0x0a に続いて 0x0c となっている個所があると思います)


PDFtk
一方、PDFのページをコマンドラインで結合・分割するには PDFtkが便利です。 インストーラEXEで配布されています。使い方は簡単。

C:\Wintools\PDFtk\bin\pdftk input_sample1.pdf cat 15 20 output mid1.pdf
C:\Wintools\PDFtk\bin\pdftk input_sample2.pdf cat 13 18 output mid2.pdf
C:\Wintools\PDFtk\bin\pdftk mid1.pdf mid2.pdf cat output output.pdf

1個目のPDFの15,20ページ目と2個目のPDFの13,18ページ目を抜き出して結合する処理は、 こんな感じです。
なおページの分割、結合も、元のPDFファイルが「編集を許可しない」 設定になっていると動作しません。


Meadow

MeadowはUNIX上の有名なテキストエディタ、EmacsのWindows版です。 バージョン1.1からはエクスプローラなどからのドラッグ/ドロップでファイルを開けるようになり、 操作性が格段に向上しました。 Vectorでダウンロードします (Meadow-1.10-i386.tar.gz)。

  1. インストールしたいディレクトリの上で、アーカイブを展開します。 ここでは、インストール位置を C:\Wintools\Meadow\1.10 としたいために、C:\Wintools で展開します。
  2. install\1.10に行き、install.exeを実行します。
  3. ホームディレクトリを尋ねられるので、入力します。 個人使用の場合は、C:\Wintools\Meadow\1.10 でOKです。
  4. 上で指定したホームディレクトリ、ここではC:\Wintools\Meadow\1.10 に .emacsを書いておきます。このファイルは宙で書くのは難しいので、 Webで先達のTipsを集めて自分オリジナルの.emacsを作ります。 私もこのような.emacsを作っています。
以下、主なメモです。
  • ホームディレクトリは、レジストリ
    \\HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Meadow\1.10\Environment
    
    の属性「HOME」で定義します。パス区切り文字は \ でも / でも構いませんが、 ドライブ名(C:)は必ずつける必要があります。
  • 以前のMeadowでは、.emacsはISO-2022-JP(JISコード)で書かなければいけませんでした。 今もそうなのかな?
  • デフォルトでは、日本語フォントが1.5倍の幅で表示されてしまうので、 上の.emacsでは このページを参考に、 フォントセットを変更しています。

Misc. Topics Top

(first uploaded 2002/01/27 last updated 2025/02/17, URANO398)