三月 2, 2015

Windowsでpt(The Platinum Searcher)を使った

Windows上のコマンドプロンプトとEmacsでpt(The Platinum Searcher)を使ったのでメモ。

Windowsでpt(The Platinum Searcher)を使った

Windows上のコマンドプロンプトとEmacsでpt(The Platinum Searcher)を使ったのでメモ。

monochromegane/the_platinum_searcher

検索文字列と検索対象ファイルの文字コードが一致していなくてもちゃんと検索してくれるらしい。対応文字コードはUTF-8、EUC-JP、Shift_JISということで自分には十分。

まずはコマンドラインから試して、UTF-8なファイルを検索してちゃんと結果が出るのを確認できた。通常コマンドラインから与えた文字列はCP932なので、grepではうまく検索できないところをptならば出来る。これは便利。

次にEmacs(いわゆるNTEmacs)から。pt.elをインストールしたあと、pt-regexpコマンドで検索したが、うまく検索できなかった。どうもEmacsの設定が足りないらしく、ググったりして下記を追加したらうまく検索できるようになった。自分のEmacsの各種coding-systemの設定にcp932が一つも無かったので、おそらくこれまでも似たような状況だったのかもしれない。

(if (eq system-type 'windows-nt)
    (progn
      (setq default-process-coding-system '(utf-8 . cp932))))

2015-03-14追記

上記設定を有効にしたら今度はclang-format-bufferコマンドの出力結果がおかしくなってしまった。現在はpt-regexpコマンドを使う度に上記設定を有効にして、その後元に戻している。なかなか上手くは行かないものだ。