CSVモードで列単位での横スクロールをしたNo.37468
hawk-eye さん 19/08/09 15:57
 
CSVモードでの要望ですが、
列単位での横スクロールができて欲しいです。

例えば、【左矢印キーまたは右矢印キー】+何かのキーを押す度に、
秀丸エディタの表示領域の左端に、次の列の左端が来るという感じです。
マウス操作でも構いません。

よろしくお願い致します。

以上

[ ]
RE:37468 CSVモードで列単位での横スクロNo.37469
秀丸担当 さん 19/08/09 16:44
 

列単位でのスクロールとはちょっと違うかもしれないですが、「タブ前進」「タブ後
退」コマンドで、CSVモードの場合は列単位のカーソル移動ができます。
キー割り当てでこのコマンドを割り当てておくのでどうでしょうか。

ただ、右方向に移動(タブ前進)の場合、セルが見やすい位置ではないので、以下の
ようなマクロにするとよりいいかもしれません。
forwardtab;
forwardtab;
backtab;
こうしておくと右に移動したセルが見やすい位置に来ると思います。

[ ]
RE:37469 CSVモードで列単位での横スクロNo.37478
hawk-eye さん 19/08/15 14:16
 
秀丸エディタの表示領域に何列も表示されている場合だと
一度に複数列を移動(二進一退)するのがチラチラ見えるので、
正直気持ち悪い気もしますが、納得できない事もないです。

なお、要望に書いていませんでしたが、
1列目と最終列目が繋がるような動作になって欲しかったので、
その他細かい考慮もして、以下のような2つのマクロにしてみました。

●TSV/CSVモードでタブ区切り/カンマ区切りの次の位置にジャンプするマクロ

#num = tabcolumn;
forwardtab;
if ( tabcolumn == #num ) {
 if ( column != 0 ) {
  golinetop;
 }
} else {
 #pos = column;
 forwardtab;
 if ( column != #pos ) {
  backtab;
 }
}

●TSV/CSVモードでタブ区切り/カンマ区切りの前の位置にジャンプするマクロ

backtab;
if ( result == false ) {
 golineend;
 if ( column != 0 ) {
  #num = tabcolumn;
  backtab;
  if ( tabcolumn != #num ) {
   forwardtab;
  }
 }
}

以上

[ ]
RE:37478 CSVモードで列単位での横スクロNo.37481
秀丸担当 さん 19/08/16 11:43
 

1列目と最終列目がつながるようにするには、既に作られているように、マクロで作
る必要がありました。
移動のちらつきを抑えるとしたら、マクロ先頭にdisabledrawを書いておくと軽減さ
れると思います。

[ ]
RE:37481 CSVモードで列単位での横スクロNo.37483
hawk-eye さん 19/08/16 14:10
 
disabledrawを書くと、ちらつきは解消しますが、
forwardtab;
forwardtab;
backtab;
でセルが見やすい位置に来る方法が上手くいかなくなりました。

2つ目のforwardtabだけをdisabledraw,enabledrawで囲うようにしたら
ちらつきが少しマシな感じになったような気もしますが、
現状のままでも良いかなという気もします。
いろいろとありがとうございました。

[ ]
RE:37483 CSVモードで列単位での横スクロNo.37485
秀丸担当 さん 19/08/16 17:14
 

すみません。disabledrawをするだけではスクロール位置が不定になるためだめでした。

既に現状のマクロでよくて、不要かもしれないですが、参考情報として書いておきま
す。
enabledrawでスクロール位置の調整ができて、V8.89のβ版においては横スクロール
位置も調整できるようにしてありました。
タブ前進の場合は、2回進んで1回戻る、でなくても、enabledrawで横スクロール位
置を設定可能でした。
例:
#screentopy = screentopy;
disabledraw;
forwardtab;
enabledraw #screentopy, xview;

ここで別問題がわかってしまったのですが、[その他]→[動作環境]→[表示/操作]→
[文字の描画]の「3Dグラフィックスアクセラレータによる文字の描画」がONの場合は
xviewがずれてうまくいかないことがわかりました。
「3Dグラフィックスアクセラレータによる文字の描画」はOFFだと大丈夫と思います
が、ONの場合の問題は調べて修正します。


[ ]
RE:37485 CSVモードで列単位での横スクロNo.37486
hawk-eye さん 19/08/16 17:43
 
出来ました。
ありがとうございました。

私の環境では、
[その他]→[動作環境]→[表示/操作]→[文字の描画]の
「3Dグラフィックスアクセラレータによる文字の描画」は、OFFでした。

一つ気になったのですが、
#screentopy = screentopy;
disabledraw;
forwardtab;
enabledraw #screentopy, xview;
で実行した場合、
1列目から2列目に移動する時、列の表示位置がずれるわけでもないのに
表示全体が大きく揺れるような印象がすごく気になったのですが、
これは仕方ないのでしょうか?

2列目以降は、列の表示がずれてくるので、気になりませんでした。

[ ]
RE:37486 CSVモードで列単位での横スクロNo.37487
秀丸担当 さん 19/08/16 18:29
 

見た目ではちょっとわからなかったのですが、トレースして調べてみたところでは、
左端から8桁くらいは自動的にスクロールが発生する領域のため、スクロール後に再
度自動調整されて2回スクロールが発生しているようでした。
あらかじめ8桁ずらして、
enabledraw #screentopy, xview-8;
とするとよさそうです。

[ ]
RE:37487 CSVモードで列単位での横スクロNo.37489
hawk-eye さん 19/08/16 19:32
 
表示が揺れずに移動出来るようになりました。
ありがとうございました。

試していたCSVファイルの1列目は、
半角カンマを含めて、7桁のものや4桁のものでした。
その時の表示の揺れ方は、
横にずらそうとしたけどやっぱり止めたみたいな横揺れでした。

[ ]