ファイル読み込み時の「タブ」⇔「空白」No.32137
NORI_ さん 13/03/21 22:46
 
[ファイルタイプ別の設定] → [その他] → [保存・読み込み] の所で、
保存するときのタブ・空白の変換は設定できるようになっていますが、
読み込むときにそれとは逆のタブ・空白の変換を出来るようにして
いただけないでしょうか?

保存する時はタブを空白に変換し、読み込むときは空白をタブに
変換することにより、編集中のインデント調節に要求される
Back Space や Delete キーなどの押下数を削減したく思っております。

[読み込むときの変換] の [読み込むときにEOF制御文字を無視] の右側に
スペースがありますので、そこに [タブ・空白の逆変換] という
チェックボックスを用意していただけると良さそうな気がします。


何卒よろしくお願いいたします。

[ ]
RE:32137 ファイル読み込み時の「タブ」⇔No.32138
秀丸担当 さん 13/03/22 10:05
 

保存するときの空白・タブの変換の逆バージョンの、読み込むときの変換は確か
にないです。
保存の場合は一度目で見たものが保存されるので、タブの桁数がずれているかど
うかを確認することができますが、読込みが設定としてできてしまうと元のファ
イルの状態がわからなくなってしまいそうで気がかりではあります。

とりあえず現状では自動起動マクロで、マクロを実行するようにするとできると
思いますが、どうでしょうか。
[マクロ]→[マクロ登録]→[自動起動]で「ファイルを開いた直後」で指定できま
す。

マクロの例

#x=x;
#y=y;
disabledraw;
selectall;
totab;//またはtospace;
escape;
moveto #x,#y;


プロジェクトによってタブの桁数が違うことはよくあるので、マクロであれば同
じ拡張子でも特定のフォルダのみのファイル、など、厳密に分別することも可能
だと思います。

[ ]
RE:32138 ファイル読み込み時の「タブ」⇔No.32141
NORI_ さん 13/03/23 03:16
 
代替となり得るマクロを教えていただきありがとうございます。
今日一日使わせていただきまして、大変快適に作業をすることが出来ました。
その中で幾つか考えたことがありますので、相談させてください。

> 保存の場合は一度目で見たものが保存されるので、タブの桁数がずれているかど
> うかを確認することができますが、読込みが設定としてできてしまうと元のファ
> イルの状態がわからなくなってしまいそうで気がかりではあります。
確かに目に見えないところで自動変換されるので、実際のファイルの内容が
どうなっているのかぱっと見わからなくなるという懸念があります。
そこで、秀丸エディタ本体でのみ可能な対策を考えました。

★ステータスバーに [インデントの状態] を表示できるようにすることを提案します。
具体的には設定に応じて次の様に表示します。括弧内はタブの桁数です。
 ●保存時のタブ・空白変換が「なし」の時
  Tab(2)
  または
  Space(2)  ← 「タブキーで空白を入力」が有効な場合
 ●保存時の変換が有効な時(前者は空白に、後者はタブに変換する場合)
  Tab ⇒ Space(2)
  または
  Space(2) ⇒ Tab
 ●逆変換も有効な時
  Tab ⇔ Space(2)
  または
  Space(2) ⇔ Tab

これにより、タブ幅の設定と、ファイル読み書き時のタブ・空白変換の設定が一目瞭
然と
なるため、一目で実際のファイルの内容をほぼ把握できるようになります。さらに、
★ステータスバーのインデントの状態表示をクリックしたときのコンテキストメニ
ューを
以下の様にすることを提案します。

  ─────────────────
   タブの文字数を指定: 8
  ・2
   4
   8
  ─────────────────
  ・タブを空白に変換して保存
   空白をタブに変換して保存
   変換せずに保存
  ─────────────────
  ✓タブ・空白の逆変換(読み込み時)
  ─────────────────
   タブ・空白変換をせずに再読み込み
  ─────────────────

一番下の [タブ・空白変換をせずに再読み込み] により、実際のファイルの内容を
すぐに確認できるようになっていると当初の懸念はほぼ解消されると思います。
また、秀丸担当様のおっしゃる通り、プロジェクトによってタブの桁数などが異なる
ことは
良くあります。そこで、上記の様にステータスバーからそういった設定を変更できる
ように
なっていると、便利だと思います。

このタブ・空白の逆変換は汎用的に多くのファイルで利用できます。
その機能をチェックボックス一つで有効化できるようになっていると、
多くの人にとって自動起動マクロを用いるよりも利用しやすいと思います。


さらに細かい点として、自動起動マクロで空白をタブに変換した場合、updated が 1 に
なり、タブの右端に * マークが表示された状態になるという問題があります。
これは本当に変更されたファイルと紛らわしいです。
save によって上書き保存することでこのマークを消すことは可能ですが、これは
無駄なディスクアクセスです。秀丸エディタ本体によるタブ・空白の逆変換であれば
もっとクールな対処が可能と思います。


このようにインデントに関する機能を強化していただけますと、さらに愛すべき
便利な秀丸エディタになると思います。


ご検討、よろしくお願いいたします。

[ ]
RE:32141 ファイル読み込み時の「タブ」⇔No.32142
h-tom さん 13/03/23 07:00
 

h-tom です。

ここだけ。
>さらに細かい点として、自動起動マクロで空白をタブに変換した場合、updated が
>1 に
>なり、タブの右端に * マークが表示された状態になるという問題があります。
>これは本当に変更されたファイルと紛らわしいです。
マクロの最後に、
  clearupdated;
を追加すればいいのでは?

プロジェクト毎の設定などは、".editorconfig"と、認識するマクロでも作れば、
便利そうなんですよね。

[ ]
RE:32142 ファイル読み込み時の「タブ」⇔No.32143
NORI_ さん 13/03/23 08:56
 
h-tom さん

ありがとうございます!
clearupdated 知りませんでした。


> プロジェクト毎の設定などは、".editorconfig"と、認識するマクロでも作れば、
> 便利そうなんですよね。
なるほど、興味深いアイディアです。

[ ]
RE:32143 ファイル読み込み時の「タブ」⇔No.32145
秀丸担当 さん 13/03/25 09:26
 

>★ステータスバーに [インデントの状態] を表示できるようにすることを提案します。
>★ステータスバーのインデントの状態表示をクリックしたときのコンテキストメニ
>ューを
>以下の様にすることを提案します。

読込み時の変換もするとしたら、そのような表示などができたら便利かもしれま
せん。
ご意見参考にさせていただきます。


>さらに細かい点として、自動起動マクロで空白をタブに変換した場合、updated が
> 1 に
>なり、タブの右端に * マークが表示された状態になるという問題があります。

こちらはh-tomさんの言われる通り、clearupdatedをすれば大丈夫でした。

[ ]