2018-01-04 追記
PDFからコピペした時など、エディタで普通に変換したくなって試していたところ、もっとシンプルにできました。
「選択されたテキストを出力で置き換える」が便利です。
概要
Macでファイル名をコピペすると濁点と半濁点がおかしくなる。("パ" -> "ハ" + "半濁点"の2文字になる)
Sublime Textだと表示がおかしいので気づくことができるけど、Atomだと表示はおかしくならないので気づけない。困った。
原因
MacOSのファイルシステムであるHFS+が使用している、UTF-8の正規化方法が「NFD」というもので、2文字に分けて正規化されてしまうことが原因。
参考
対策
nkfで--ic=UTF8-MAC
オプションを指定することで、NFD -> NFCに変換できる。
$ echo "コピペしたもの" | od -tx1c
0000000 e3 82 b3 e3 83 92 e3 82 9a e3 83 98 e3 82 9a e3
コ ** ** ヒ ** ** ゚ ** ** ヘ ** ** ゚ ** ** し
0000020 81 97 e3 81 9f e3 82 82 e3 81 ae 0a
** ** た ** ** も ** ** の ** ** \n
0000034
$ echo "コピペしたもの" | nkf --ic=UTF8-MAC | od -tx1c
0000000 e3 82 b3 e3 83 94 e3 83 9a e3 81 97 e3 81 9f e3
コ ** ** ピ ** ** ペ ** ** し ** ** た ** ** も
0000020 82 82 e3 81 ae 0a
** ** の ** ** \n
0000026
よし、Automatorでサービスを作ってショートカットキーを当てよう。
Automatorで新規サービスを作成する。
nkfに-wオプションをつけないと標準入力に渡されてこなかった。なぜ?
システム環境設定 -> キーボードで作成したサービスのショートカットを設定する
$ echo "/Users/matsushimadaisuke/Desktop/コピペしたもの /Users/matsushimadaisuke/Desktop/コピペしたもの" | od -tx1c
0000000 2f 55 73 65 72 73 2f 6d 61 74 73 75 73 68 69 6d
/ U s e r s / m a t s u s h i m
0000020 61 64 61 69 73 75 6b 65 2f 44 65 73 6b 74 6f 70
a d a i s u k e / D e s k t o p
0000040 2f e3 82 b3 e3 83 94 e3 83 9a e3 81 97 e3 81 9f
/ コ ** ** ピ ** ** ペ ** ** し ** ** た ** **
0000060 e3 82 82 e3 81 ae 20 2f 55 73 65 72 73 2f 6d 61
も ** ** の ** ** / U s e r s / m a
0000100 74 73 75 73 68 69 6d 61 64 61 69 73 75 6b 65 2f
t s u s h i m a d a i s u k e /
0000120 44 65 73 6b 74 6f 70 2f e3 82 b3 e3 83 94 e3 83
D e s k t o p / コ ** ** ピ ** ** ペ **
0000140 9a e3 81 97 e3 81 9f e3 82 82 e3 81 ae 0a
** し ** ** た ** ** も ** ** の ** ** \n
0000156
あれ?うまくいってるけど、2回コピーされてる、、、