日頃温めていた希望(^^;No.10314
Arimac さん 01/11/15 00:48
 
1.スクロール後のカーソル位置
 ・現在、スクロール後のカーソル位置(縦方向)は画面上で固定か、
  ファイル上で固定かのどちらかですが、
  「カーソルが画面外(オフセット外)にならない限りファイル上で
  固定で、画面外になりそうなら画面内に移動する」
  というファジーなモードが欲しい(^^;
  イメージとしては紙(ファイル)の上に四角い木枠(ウインドウ)を
  載せてその中に小物(カーソル)を置いて上下左右に動かすと
  枠に当たった小物が押されて動くような感じです(^^;
  (つまり、なるべくファイル上で固定になって欲しいが、画面外に
   出ていっても欲しくないという・・・(^^;)

2.フリーカーソルモードでの改行後のカーソルの動き
 ・改行から右側で→キーを押下した場合は下の行の1桁目が行くモードが
  欲しい。VB2.0かREDかVzかWindexだった忘れましたが、結構高速に
  カーソルが移動できて便利だったような覚えがあります。
  ただ、細かい動きは違っていたかもしれないのでやはり矢印キーに
  マクロが割り当てられるようになる方が良いとは思います(^^;

3.タブの左側での挿入/削除
 ・タブの左側で挿入/削除が行われてもタブの右側の文字位置は
  固定になるモードが欲しい。
  これは以下のような感じ("."をタブ(4)と見てください)
挿入前:aa. .   bbb
挿入後:1aa..   bbb   … 1を先頭に挿入
挿入後:12aa.   bbb   … 2を挿入(bbbの位置は変わらない)
挿入後:123aa.  bbb   … 3を挿入
挿入後:1234aa. bbb   … 4を挿入
挿入後:12345aa.bbb   … 5を挿入
挿入後:123456aa.   bbb … 6を挿入(タブは無くなることはない)
  削除は上記の逆のような感じでタブが増える。ただし、タブを
  削除するとタブは減る。
  昔のミニコンのエディタがこんな感じでした(^^;
  水平位置を固定した表のような文書(アセンブラとかも)では
  便利だと思います。

[ ]
RE:10314 日頃温めていた希望(^^;No.10331
ひろ さん 01/11/15 23:08
 
 Arimacさん今日は、ひろです。
> 1.スクロール後のカーソル位置
<中略>
> 2.フリーカーソルモードでの改行後のカーソルの動き
 どちらも使わないので、どちらでも良い(^^;。

> 3.タブの左側での挿入/削除
 これは勝手に増えると、それはそれで不便な場面が出てくるでしょうから、
BOX 選択 (というより行頭ではない) インデントが欲しいことがあります。
 ##「行頭でなければインデントとは言わない」という突っ込みはしないで
ください。

[ ]
RE:10331 日頃温めていた希望(^^;No.10335
Arimac さん 01/11/16 00:00
 
1.スクロール後のカーソル位置
 ・私の設定ではいつも「スクロールしてもカーソル位置は固定」を
  ONにしているのですが、マウスでスクロールしてうっかりそのまま
  カーソルを移動しようとしてページが前に戻ってしまうことがある
  ので不便なんです。これはワードも同じなので同じように不便を
  感じています(^^;

2.フリーカーソルモードでの改行後のカーソルの動き
 ・私は秀丸エディタを使うまではフリーカーソル派だったのですが、
  秀丸エディタのフリーカーソルモードはいまいち使いにくいので
  フリーカーソルモードはOFFで使っています(;_;)

3.タブの左側での挿入/削除
 ・これはC言語などで変数定義の右にコメントを付けたりしている
  時にコメントの位置が固定できて便利です。タブはほとんどの
  場合、位置を固定するために使っているので私はこの動作を
  デフォルトにしたいです(^^;

例:
    DWORD.  dwSize;..   // この構造体のサイズ
    BOOL.   bConv;. .   // この構造体の使用中を示すフラグ
    UINT.   nStart;..   // 検索開始位置。バイト数。先頭は0
    int..   nWarning;.  // ウォーニングコード
    int..   nError;..   // エラーコード
    UINT.   nLength;.   // マッチ長。バイト数
    UINT.   nPosition;. // マッチ位置。先頭は0
  "."の位置にタブがあるわけですが、型を変えたり変数名を変えたり
  して長さが変わった場合、後のタブの数を調整することが多いですが、
  結局、タブの後ろの文字の位置が固定されるように自動的にタブの数
  が変わればこうゆう面倒なことはしなくて済むわけです(^^;

>BOX 選択 (というより行頭ではない) インデントが欲しいことがあります。
私はBOX選択で切り抜いてタブを最初の行にセットしてBOX貼り付けしています。
(当然、「フリーカーソル位置で文字入力した時にタブ文字を使用する」を
 ONにしています)
ひろさんなら既にマクロを使ってやってそうな感じなんですが・・・(^^;

[ ]
RE:10335 日頃温めていた希望(^^;No.10344
TAKA さん 01/11/16 11:54
 
TAKA です。

>3.タブの左側での挿入/削除
> ・これはC言語などで変数定義の右にコメントを付けたりしている
>  時にコメントの位置が固定できて便利です。タブはほとんどの
>  場合、位置を固定するために使っているので私はこの動作を
>  デフォルトにしたいです(^^;

私も、そう思います。
ただ、この動作で困る場合があるかもしれませんが、実装されたら
是非使ってみたいです。
#一度使ってみないと何とも言えない。

今まで(今も)は、手作業でやっていました。

[ ]
RE:10344 日頃温めていた希望(^^;No.10355
秀丸担当 さん 01/11/16 18:10
 
>1.スクロール後のカーソル位置
>2.フリーカーソルモードでの改行後のカーソルの動き
>3.タブの左側での挿入/削除

1と3はあると便利だと思います。
検討しておきます。
2はフリーカーソルじゃないときとどう違うのでしょうか?

[ ]
RE:10355 日頃温めていた希望(^^;No.10366
Arimac さん 01/11/16 21:56
 
>>1.スクロール後のカーソル位置
>>2.フリーカーソルモードでの改行後のカーソルの動き
>>3.タブの左側での挿入/削除
>
>1と3はあると便利だと思います。
>検討しておきます。

ありがとうございますm(_ _)m

>2はフリーカーソルじゃないときとどう違うのでしょうか?

実のところは余り良く覚えてない(^^;のですが、
行末(改行)から右側で右矢印キーを押すと
下の行の1桁目に移動したような気がします。
(それ以外は同じ)
ひょっとすると左矢印キーを押したら同じ行の
行末の位置に移動したかも知れません。

真のフリーカーソルとは言えませんが、
その時代は確かフリーカーソルと呼んでいた
ような気がします。

この方法だと操作感がわりとフリーカーソルでない
モードに近いうえ、フリーカーソルのメリットも
あるので便利なんです(^^;

例えば、
//*****************************************************
//* コメント
の2行を
//*****************************************************
//* コメント                                          *
とするにはフリーカーソルだと、1行目の一番右の"*"に
カーソルを持っていって下矢印キーと"*"で出来ます。

逆に1行目の真ん中にカーソルがあるとして、フリーカーソル
でないモードだと↓→で1桁目にカーソルを持っていくこと
ができますが、(現在の)フリーカーソルモードだとこうは
行きません。最初に記述した方法だとこの操作が同じに
なります。

要は矢印キーから手を離さずに
高速にカーソル移動が行えるわけです(^^;

[ ]
RE:10366 日頃温めていた希望(^^;No.10400
秀丸担当 さん 01/11/19 19:34
 
>実のところは余り良く覚えてない(^^;のですが、
>行末(改行)から右側で右矢印キーを押すと
>下の行の1桁目に移動したような気がします。
>(それ以外は同じ)

右矢印で次の行の行頭に行ってしまったらフリーカーソルの
意味がほとんど無くなってしまうような気がします。(?)
Homeキーを押せば行頭に移動するのでこれではだめでしょう
か?

[ ]
RE:10400 日頃温めていた希望(^^;No.10404
Arimac さん 01/11/19 22:07
 
>右矢印で次の行の行頭に行ってしまったらフリーカーソルの
>意味がほとんど無くなってしまうような気がします。(?)

フリーカーソルモードに求めているポイントは改行より右側に
カーソルが入ることができるということなのです。

例えば下のような行にコメントを入力しようとした場合、
DWORD   dwSize;..   .   .   // この構造体のサイズ
BOOL    bConv;//
UINT    nStart;//
int     nWarning;//
フリーカーソルでない場合は
(2行目の行末にカーソルがあるとして)
\t\t\t\t//↓\t\t\t\t//↓\t\t\t//↓とするか
行が沢山ある場合は"\t\t\t\t//"をコピーしてペーストして
タブの数を調整することになりますが、
フリーカーソルの場合は
(1行目の1つ目の/にカーソルがあるとして)
↓//←←↓//←←↓//で出来るのですが
これだとタブの数を気にする事なく出来るのと
手順が単調なのでキー操作の記録/再生が使えて
しまうのです(^^;

右矢印で次の行の行頭に行くタイプのフリーカーソルで
右にカーソルを進めるには上下にある長い行を利用します。
これは左右へのカーソル移動に比べて上下のカーソル移動が
速いからです。それと漢字上の方がスペース上よりも速く
移動できます。

ここら辺のことは昔、何かの雑誌(雰囲気としてはTHE BASIC)
で解説されてたような気がします(^^;

あと、行末から右側で左矢印を押したときは行末からさらに
1文字左の位置に移動するとフリーカーソルではない場合と
同じ位置に移動するのでより違和感が無くなります。
(フリーカーソルではない場合は行末にカーソルがあるので)

もう一つの大きな違いが、マウスでカーソルを自由な位置に
持っていく事が出来るというところもあります。
(カーソルキーから手を離したくないということと矛盾する
 ようですが、マウスばかりならこれも効率が良い)

>Homeキーを押せば行頭に移動するのでこれではだめでしょう
>か?
Homeキーは3段も上にあるので遠いです(^^;

[ ]
RE:10400 日頃温めていた希望(^^;No.10406
Arimac さん 01/11/20 00:29
 
動作をシミュレートするマクロを作ってみました(^^;
左矢印は通常どおりの方が具合が良かった・・・

while (1) {
    #ch = inputchar("終了: Esc");
    if (#ch == 0x1B) break;
    if (#ch == 8) {
        backspace;
    } else if (#ch == 0x1C) {
//      if (code == 0) golineend;
        left;
    } else if (#ch == 0x1D) {
        up;
    } else if (#ch == 0x1E) {
        if (code == 0 || code == 0x0D) {
            down;
            golinetop;
        } else {
            right;
        }
    } else if (#ch == 0x1F) {
        down;
    } else {
        insert char(#ch);
    }
}

ほとんどのキーを拾えるinputcharがあれば
自分で作るかもしれませんが・・・(^^;

[ ]
RE:10404 日頃温めていた希望(^^;No.10419
秀丸担当 さん 01/11/21 14:51
 
>フリーカーソルモードに求めているポイントは改行より右側に
>カーソルが入ることができるということなのです。
>:

なるほど、望んでいることがよくわかりました。
このフリーカーソルのほうが使い勝手がいいかもしれません。
検討しておきます。

[ ]
RE:10419 日頃温めていた希望(^^;No.10437
Arimac さん 01/11/23 00:33
 
>なるほど、望んでいることがよくわかりました。
>このフリーカーソルのほうが使い勝手がいいかもしれません。
>検討しておきます。

ご理解頂きありがとうございます(^^;

行末から右側で左矢印を押したときの動作ですが、
10406で書いたように通常のフリーカーソルと同じように
単に左に移動する方が良いようです。

何故ならば行末から右側で右方向にカーソルを進める
にはスペースバー(*1)を押せば良いのに対し、左方向に
戻すには左矢印キーしかないからです。特に右方向に
カーソルを移動するのに上下の行を利用している場合、
カーソルを起きたい位置が漢字の2バイト目であったり
タブの途中だったりするとカーソルを戻す必要があるから
です。

(*1)スペースバーは左手をホームポジションに置いていれば
 親指で押せるわけで、右矢印キーで右移動が出来なく
 なっても入力速度には差は出ないわけです。

# 問題は頭がついて来れないかもしれないということですが、
# 私(42才)より若い人がそんなこと言ってるとリストラ
# されるかも(^^;

[ ]