Bたーんぶろぐ

プログラマがそんなにテックでないことを書きます。

MacのSublimeText2で¥nが認識されない

SublimeでCソースをコンパイルしたら改行しない。

Sublime Text 2を使い始めてしばらくになります。

このところずっとJavaを弄ってたこともあり、CをSublimeで書くのは動作確認以来。

アルゴリズムの勉強の時も、大学のPCのvi+terminalで編集コンパイル実行としてしまうので、Sublimeの出番はありませんでした。

ただ、今回アルゴリズムの例題の件でちょっとしたCのプログラムの挙動を確認したく(要はCを復習中)、Sublime上でコンパイル+実行を行いました。

するとprintf中の改行子¥nに対して、実行結果がうまく改行として反映されておらず、そのまま文字列として出力されてしまいます。

f:id:Btern:20131003015712p:plain

これでは出力結果が見にくいことこの上ない! 

 

原因はMacの方らしい

そんなわけで調べてみると、Sublimeの話ではなくどうやらこれはMacの方が影響しているらしい。

そもそもMac上では「¥」と「\」は区別されるらしい。

したがって、Mac上でエスケープシークエンスを使いたい場合には、改行にかぎらず「¥」ではなく「\」を使わなければならないようです。

ちなみに、Mac上での「\」の打ち方ですが「⌥(Option)+¥」で打てます。

 

なんでこんなことになってるかはわからないです。

些細な事ですが、調べてみるとエディタ依存ではなく他の言語など(PHP等)でも同様の現象が起こるようです。

そもそも、この日本語における「¥」と「\」の問題はASCIIコードの「\」がJISの「¥」に対応していたために起こったことらしいのですが、結局なんでMacだけがこの2つを区別するようになっているかはわかりません。

ちなみに、これはMacBookProの方の話で、自宅のMacminiの方はUS規格のキーボードを使ってるからか、普通に「\」打ててました。むしろ「¥」の打ち方がわからん。

 

参考