So-net無料ブログ作成
検索選択
OSXでUNIX ブログトップ

テキストエディットの罠 -UTF-8問題- [OSXでUNIX]

前回、ターミナルから見るのに便利だから、UTF-8で保存した方が良いかも、と書いたのですが、もしGUIのメインのエディタにテキストエディットを使ってる場合ちょっと問題があったりします。

現在テキストエディットには「自分では書き出せるUTF-8ファイル。でも自分で読み込めない。」というトホホなバグがあります。

でも全く読めないわけではないんです。ファイルを直ダブルクリックで開こうとせずに、ファイルメニューから「開く..」を選択し、その際に出る、ダイアログ内のファイル形式ポップアップでUTF-8を選択して開けば問題なく開きます。でも面倒ですね。

フリーウェアのmiでさえキチンと開いてくれます。純正アプリとしてこれじゃ駄目でしょ〜。迅速にバグフィックス希望です。


ターミナルの設定 [OSXでUNIX]

ジャガー(OSX10.2)以降のターミナルはUTF-8に対応しているので、日本語を含む多言語の表示も可能となっています。通常、デフォルトでUTF-8に設定されているはずです。

これは、
ターミナルインスペクタ(Command+i)>ディスプレイ>文字セットエンコーディング
で変更出来ます。

ターミナルインスペクタ>エミュレーション>非ASCII文字をエスケープする
チェックボックスをONにしておけば、日本語の直接入力が可能になります。

現在のディレクトリのファイル等を表示するlsコマンドですが、そのままでは日本語フォルダは文字化けしてしまいます。これは、-vオプションを付けて実行すると、日本語も正しく表示されます。

例)
ls -v

catコマンドでテキストの中を見る場合、その書類がUTF-8フォーマットで保存されているのならば、テキスト内の日本語は正確に表示されます。しかし、例えば日本語(S-JIS)で保存されている場合、日本語テキストは文字化けてしまうので、ターミナルインスペクタで合わせて変更しないと読めません。しかも、その設定のままls -vコマンド等でファイル名を表示しても日本語ファイル名はやはり文字化けてしまいます。

その度に文字セットを切り替えるのは面倒ですが、これは、MacOSXではファイル名はUTF-8、従来のMacOSに由来する部分はS-JIS、日本語に対応したUNIXに由来する部分は日本語EUC、と、複数の文字コードが混在した仕様になっている為です。

日本語書類はできるだけ、UTF-8で保存し、ファイル名は英語を使うのが現状では一番現実的かもしれません。


vi-01 [OSXでUNIX]

viは、ほぼ全てのUNIXに搭載されているエディタで、システム管理者等が良く使用されています。勿論、UNIXベースであるOSXにも搭載されているので、ちょっと使ってみようと思います。注意すべき点は、標準でインストールされているvi(vim)は、multibite無効でコンパイルされている為、日本語は使えません。

・ ターミナルを起動し、viと打ち込みリターンキーを押すと、ターミナル内でviが起動する。

・ i を入力すると、入力モードに切り替わる。(左下に"-- INSERT --"と表示されます。)

・ とりあえず通常のエディタのように文章や文字を書いてみます。

・ escキーでコマンドモードに戻ります。

・ :w hellovi.txt  [リターンキー]で、現在のディレクトリに"hellovi.txt"というテキストファイルが保存されます。

・ :q [リーターンキー]で、viを終了。

とりあえず慣れるまではこんな感じの使い方でいけるようですが、viのコマンドモードは沢山の便利なコマンドが備わっており、それらを使いこなせれば強力な編集ツールとして実力を発揮します。

-----

ターミナルからの起動時オプション

vi +[数字] filename
"filename"というファイルを読み込み[数字]行目にカーソルを移動させます。
ソースコードの編集に便利。[数字]を省略するとそのファイルの最終行に移動します。
+も省略するとそのファイルの最初の行に移動します。

vi +/REGEXP filename
ファイルを開いた後、そのファイル上の最初の正規表現の位置に移動します。

vi -R filename
view filename
読み込み専用でファイルを開きます。

vi -r filename
前回、viでの作業中にviがクラッシュしてしまった場合に内容がviによってpreserveされていれば、その内容を復旧出来ます。

vi -c COMMAND filename
ex -c COMMAND filename
起動後、実行可能なコマンドを実行します。


OSXでUNIX ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。