テキストエディタ内の「見えない何か」を見つける #atom #sublime

2017.12.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Frohe Weihnachten! ベルリンから伊藤です。
もうすぐクリスマス・年末で、年内最終出勤日を迎えました。

オペでここしばらく、たまに現れる原因不明の文字化けに苦しんでいました。
それもテキスト入力時には表示されないのに、送信すると表示されるという。
ということで、原因を調べて見ました。

一緒にテキストエディタのご紹介もできればと思います。

どんな感じに出るか

こんな感じです。

このような文字を含む返信を受け取られたお客様には、本当に申し訳ございませんでした。

厄介なのが、この文字化けしているものは、テキスト入力時や普段私が利用しているテキストエディタでは表示がされません。
コピペして頂けば分かりますが、この中にも入ってます。
カーソルの位置は見た目上変わらないですが、文字数としてはカウントされます。

をご連絡頂けないでしょうか。
### ↑。の後 ###

どうぞよろしくお願い致します。

正体

今回の場合は、DLE(Data Link Escape;データリンク拡張)というヤツでした。
ASCIIの制御コードです。

他にもETXなど、見えない制御コードはいろいろあるようです。

原因

こちらのご参考記事ではKarabinerの使用が原因だったようですが、私は似た機能で英かな.appを使用してCommand-Lを英数入力とする設定にしているのですが、このアプリケーションを起動している状態で Shift + Command-L を実行した場合にDLEが入力されているようでした。
ただし、こちらを使用していない同僚でも発生しているので、原因は未だハッキリ分かっておりません。

(ちなみにですが、ショートカット大好きなアンチMacの方は、ぜひ英かなを使用し、fn+Cでコピー、fn+Vで貼り付けなど設定すると良いです。WindowsのCtrlの配置最高。)

テキストエディタでの見つけ方

MacBookユーザなのですが、通常は文字を編集したり貼り付けたりするテキストエディタとしてAtomCotEditorを使用していますが、こやつらでは、この制御ユーザは見つけることができませんが、Sublimeはデフォルトでこの制御コードを表示させることができました。

以下、比較です。

  1. 左上: テキストエディット
  2. 左下: スクリプトエディタ
  3. 真ん中上: ターミナル( cat
  4. 真ん中下: Atom
  5. 右上: Sublime Text
  6. 右下: Cot Editor

もしかしたらAtomなんかも設定で表示できるようになるのでしょうか。
参考サイトさんによると、当時の時点ではデフォルト機能ではできないとのこと。

後から気付いてやってみたんですが、ターミナルも viview だと ^P として表示されていました。

テキストエディタ比較

Windows

簡易なテキストエディタとしてTeraPad(日本語のみ)、スクリプトを含むものはProgrammer's Notepad(英語のみ)を使っていました。
正規表現が使えればなんでもよいと思うのですが、サクラエディタとかも有名ですね。

Programmer's Notepadは範囲選択すると同じ文字列をハイライトしてくれるところが優秀です!

Mac

Macになり、同様にシンプルなCot Editor(日本語あり)、上級なAtom(日本語あり)として使っているのですが、今回Sublime Text(英語のみ?)をインストールしたので、今後使い勝手を探ってみます。

Atomは高度ですが、様々な追加機能があるところがオススメです。

Atom もうちょっと詳しく

Preferencesのinstallからパッケージ・テーマを入れることで、便利な機能の追加や見やすいテーマに変更できます。

デフォルトは英語なので、日本語化もこのパッケージと呼ばれる機能追加で行います。

パッケージは、こんなの入れてます。

・highlight-selected:範囲選択したら自動で同じ値をハイライト
  →しかし全角や改行またぐと効かない

・show-ideographic-space:全角スペースを表示させる

・Japanese-menu:日本語メニューにする

他にもオススメあれば教えて頂きたいくらい。

WordPressの記事も、PackagesメニューのMarkdown Previewからマークダウンをプレビューできます。
ファイルは保存する場合、拡張子は.mdにしてください。

参考

参考にさせて頂きました(ü)/

Atomで書いたコードに見えないTofu(豆腐)が紛れ込んだ時の対処法
https://www.m-field.biz/archives/2949

Karabinerで英数をoption空打ちに割り当てたら不意にDLE文字が入力されて困った話
https://qiita.com/usagimaru/items/2002e85c2f874ec682fd