Setting > IDE Setting > Virtual Space

PHPStorm / WebStorm のデフォルトでは自動折り返し(ソフトラップ)はオフになっているため、日本語で長い行を書くと延々と右に伸びて行き、編集時には非常に不便です。

本稿では自動で折り返しするための方法を説明します。

まず折り返し(ラップ)についてですが、以下の二種類があります。

  • ハードラップ:実際に改行文字を挿入して折り返す。
  • ソフトラップ:実際には改行文字は挿入されておらず、画面上だけで折り返しているように見せる。

htmlの編集の場合、特にリキッドな Web デザイン(利用者のブラウザのサイズに応じて表示幅・高さを動的に変更するデザイン)を行うときは、改行は論理的に必要な場所だけで行います。編集時の画面で見易いように改行していると、特に日本語の場合、ブラウザで表示したときに表示が崩れることがあります。



英文の場合は単語の区切りで改行する限り、ブラウザで表示しても普通に見えますが、日本語の場合微妙に気持ちの悪いスペースが表示されてしまいますので、ハードラップよりもソフトラップで編集するようにします。

この折り返し(ラップ)を自動で行うのが自動折り返し(auto wrap )で、PhpStorm / WebStorm はソフトラップ・ハードラップとも自動折り返しにする設定があるのですが、デフォルトではオフになっています。

ソフトラップの設定

Setting(設定)→ IDE Setting(IDEの設定)→ Virtual Spaces (仮想スペース設定)で行います。
ツールバーからは右の赤丸のボタンをクリック、メニューバーからはFile → Setttingで設定ダイアログを開きます。

Setting(設定)ダイアログが開きます。

左のペインの上側が Project Setting(各プロジェクト個別の設定)、下側が IDE Setting( IDE 全体の設定)です。ここでは下側の IDE Setting の中から Editor をクリックします。[+] を展開する必要はありません


右に表示されたペインの右上にある Virtual Space(仮想スペース)のセクションの中から一番上にある"Use soft wrap in Editor"(エディタ内でソフトラップを使う)にチェックマークを入れます。

これで以下のようにソフト的に折り返し表示がされます。ただし、あくまで見た目だけ折り返しされているだけで実際に改行マークは挿入されていません。

というマークが表示されていますが、これは「改行されているように見えますがのところでつながっていますよ」というしるしです。 言ってみれば「改行マーク」ならぬ「改行されていませんよマーク」です。


コンソール画面でもソフトラップを使いたい場合は二番目の “Use soft wrap in console”(コンソール内でソフトラップを使う)にチェックを入れます。


この状態では、「改行されていませんよマーク」あるいは「実際は行がつながっていますよマーク」は現在の論理的編集行、平たく言うとカーソルのある行にしか表示されていません。

カーソルのある行以外でも、つまり文書全体で表示させたい場合は、同じセクションの “Show All Soft wrap”(すべてのソフトラップマークを表示する)にチェックを入れます。どちらにするかはお好み次第です。

なお、soft wrap を使う設定にすると、エディタに横スクロールバーは表示されなくなります。



ハードラップの設定

同じく Setting (設定)から

Project Setting(左ペインの上側) > Code Style > General

と進み、Generalの “Wrap when typing reaches right margin”(右マージンに達したら改行する)(青丸で囲んだ部分)にチェックマークを入れます。右マージンは一つ上の “Right margin (columns)”(赤丸で囲んだ部分)で設定します。左ペインから JavaScript や PHP ごとに設定することができます(プロジェクト単位の設定です)。

これを設定すると、設定したマージンを越えた行に対して、適当な場所、具体的には半角空白やカンマ、ピリオド、タブなどのある場所で強制的に改行します。つまり強制的に改行マークを加えます。

日本語(マルチバイト文字)の場合、IDEが判別できる途中の切れ目というのがあまりないため、この設定はあまり意味がありません。現在のPHPStorm(IDE Stormの場合、日本語の句読点や全角空白は区切り位置とは認識されません。逆に半角スペースのところで意図せずに改行されてしまったりします。

もちろん英文の場合も区切り文字を挟まない文字列ですと改行されませんが、通常はそれほど長く一単語が続くことはありません。ただ、PHPStorm ( WebStorm )の自動(ハード)改行にはどこかバギーなところ(ver 5.0.4)があって、単語の途中に改行が入ってしまうことがあります。

(2013/01/14 12:39 投稿)