LoginSignup
3
0

More than 5 years have passed since last update.

git diff 実行時に nkf コマンドが無いって怒られた話

Posted at

2019年の初記事ですね。
今年もたぶんこんなのが多くなりますがよろしくお願いいたします。

というわけで今日の話です。

環境

  • Windows 8.1(今時めずらしい)
  • Git for Windows 2.20.1

事の発端

とある作業中、ステージング前の差分確認のため git diff {%filename%} を打ってみたところ、下記のようなメッセージが表示されました。

$ git diff
nkf -s | LESSCHARSET=utf-8 less: nkf: command not found

less ってキーワードから察するにページャー動作付近の問題に見えます。ただ、 less の前にパイプでつながっている nkf のコマンドがなくて今回はエラーになっているようです。

そもそも nkf ってなに?

Network Kanji Filter - Wikipedia

Network Kanji Filter(またはnkf)は異なる文字コード間の変換を行うソフトウェア、そのAPI。

ネットワーク漢字フィルターの頭文字をとって nkf らしいです。まさかの日本語( ゚Д゚)まあ細かいことはよくわかりませんが文字コード変換周りに使うソフトってことですかね(雑

パス確認

一応確認してみます

$ which nkf
which: no nkf in (/*****)

実行ファイル確認

こちらも念のため確認します。"Program Files" をコマンドに含めるとスペースのせいで面倒w

$ ls /c/Program\ Files/Git/bin/ | grep nkf
$ ls /c/Program\ Files/Git/usr/bin/ | grep nkf

パスも通ってないし、実行ファイルもないということで nkf をインストールすることにします。

nkf のインストール

Mac と Windows に nkf をインストールする - Corredor

ネット上にいろいろ記事はありますが個人的に上記エントリが非常にわかりやすかったです。
windows 用は tar コマンドで解凍するように記載がありますが、windows の場合は環境によって tar コマンド使えない場合もあるので、その場合はふつうに 7-Zip などの解凍ソフトでOKです。余談ですが7-zipはけっこう優秀で個人的には気に入ってます。

インストールがおわったら

再度 git diff してみます。

$ git diff
diff --git a/lib/********************.rb b/lib/********************.rb
index 911f53edf..87c1ddaf4 100644
--- a/lib/********************.rb
+++ b/lib/********************.rb

なおりましたね!

なんだったのか

今回、問題が起きた端末は実は人のおさがりで、Gitのバージョンも1.8系で古い状態でした。Git for Windows を最新に上げたり、もろもろ環境の作り直しをしていたのですが、git のページャーの設定は古いままだったのかもしれません。(推定ですが。)

めったにないケースだとおもいますが、もし似たような事象を見かけたら参考にしてみてください。

3
0
3

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
3
0