最終行の次の行に行く方法No.16745
じゅげむ さん 04/02/23 21:49
 
秀丸エディタには大変お世話になっています。

ところで、あまりに簡単なことを質問しているのかと思いますが、検索をかけてもう
まくいかず、どうやって調べればよいのかわからなかったので、こちらで質問させて
いただきました。

文章作成中、最終行の途中にカーソルがあるときに、そのまま次の行の冒頭にカーソ
ルを動かしたいことがありますが、EOFがあるので、いきなりその先に行くことはで
きません。
そこで、一旦ENDで行末に行き、そこから改行して次の行の頭に行っていますが、ど
うしても迂遠な気がします。

一般のワープロソフトであれば、EOFを超えてカーソルを移動することができ、そこ
に文字を入力すれば、そのままEOF行に改行が入り、カーソルを置いた一から文章が
入力されますが、そのようなことはできないのでしょうか。フリーカーソルを利用し
ている場合でも利用していない場合でも同じようにこういう操作ができればと思いま
す。

よろしくお願いします。

[ ]
RE:16745 最終行の次の行に行く方法No.16747
アルビレオ さん 04/02/24 04:19
 
秀丸ユーザーのアルビレオです。

>一般のワープロソフトであれば、EOFを超えてカーソルを移動することができ

秀丸エディタはテキストエディタで、テキストエディタとしてはEOFより後ろに
は書けない方が一般的だと思います。
だから今のままでいい、と強く主張するつもりはないですが、私としてはカーソ
ルの↓キーを押しつづけたらEOFで止まってくれる方がありがたいです。

もし実現したとしてもオプションで設定という形になるでしょうけど、10年以上
今の仕様で特に要望もなかったようなので、今さらそういう要望を採用するかど
うかは作者しだいでしょうね。

今気づきましたが、マクロなどでは「カーソルはEOFより下に移動できない」と
いう前提で書かれているものがけっこうあるはずです。
そうなると設定によっては動作がおかしくなるマクロがたくさん出てきそうで、
やっぱりまずいかな?
(ESCキーを押さない限り終了しないマクロがたくさんありそう)

[ ]
RE:16747 最終行の次の行に行く方法No.16748
でるもんた さん 04/02/24 06:05
 
同じくユーザーのでるもんたです。

> >一般のワープロソフトであれば、EOFを超えてカーソルを移動することができ
>
> 秀丸エディタはテキストエディタで、テキストエディタとしてはEOFより後ろに
> は書けない方が一般的だと思います。
> だから今のままでいい、と強く主張するつもりはないですが、私としてはカーソ
> ルの↓キーを押しつづけたらEOFで止まってくれる方がありがたいです。

私も同意見です。
もっとも、私自身は EOF の直前には必ず改行を入れるようにしているので(そう
なっていることを前提にしたツールがかなりの数になるので、そうしないと困る)
元の質問者のじゅげむさんのような面倒は体験せずに済んでいます。

ところで、他のエディタの事情を話しますと、主に Linux などの UNIX 系 OS で
使われている Emacs(Windows 版もあります)では、デフォルトではご要望のよ
うに↓キーを押し続けるとどんどん先に進むのですが、そうすると知らないうちに
無駄な空行が末尾についてしまって換えってトラブルの元になるうので、それを
殺して EOF までしか移動しないようにするためのオプションがあり、最近の
Emacs ではそれがデフォルトで ON になっています。
(つい最近まで、本家版 Emacs には改行を見えるように表示する機能がなかった
 のです。今でも動作方法によっては見えません。)

               ☆

さて、本題ですが、簡単なマクロで解決するように思います。

golineend2;
insert "\n";

この2行を書いたものをマクロファイルとして保存して、あいているキー、たとえば
Alt+↓あたりに割り当てればいいのではないでしょうか。

[ ]
RE:16745 最終行の次の行に行く方法No.16749
三月 さん 04/02/24 06:14
 

>一般のワープロソフトであれば、EOFを超えてカーソルを移動することができ、そこ
>に文字を入力すれば、そのままEOF行に改行が入り、カーソルを置いた一から文章が
>入力されますが、そのようなことはできないのでしょうか。フリーカーソルを利用
>している場合でも利用していない場合でも同じようにこういう操作ができればと思
>います。

反論ってわけでもないですが、MS-WORDではできないですよ?
(少なくとも標準じゃ)
WORDでできないことを「一般の」といわれても想像出来ないのですが。
ワードパッドやメモ帳も同じだし、OpenOfficeもできなかった。

ってことで、
参考までに出来るワープロソフトをあげてみてください。
試せるなら試してみたいので。
やっぱりEOFを超えてるとCtrl+Endで上の方にカーソルが動いたりするんでしょうかね?

[ ]
RE:16749 最終行の次の行に行く方法No.16750
三月 さん 04/02/24 06:20
 
>ってことで、
>参考までに出来るワープロソフトをあげてみてください。
>試せるなら試してみたいので。

と、書いてみると・・・
Emacs ってのがあるとか?使ったことがないけど。
Emacs のイメージがCUIのころのエディタでviよりは多機能
ってところでとまっていて・・もっとすごいものなのかな?

[ ]
RE:16750 最終行の次の行に行く方法No.16751
でるもんた さん 04/02/24 06:39
 
> Emacs ってのがあるとか?使ったことがないけど。
> Emacs のイメージがCUIのころのエディタでviよりは多機能
> ってところでとまっていて・・もっとすごいものなのかな?

マクロ(Emacs Lisp)がものすごく強力です。
マクロだけでメーラーもIMEも作れるし、実際それを使っている人もいます。
「Emacs は単なるエディタではなく、それだけで一つの環境だ」と言いきる人も。

[ ]
RE:16750 最終行の次の行に行く方法No.16753
ENCODINGSHIFTJIS さん 04/02/24 09:23
 
>Emacs ってのがあるとか?使ったことがないけど。

Meadow(Windows版Emacsの一つ)では ↓ キー で EOF行では
途中にあっても、行末EOFに移動しました。
しかし、昔の日本語ワープロの空白敷き詰めタイプのページの
ように、新しい行は発生しません。

xyzzy(もう一つのWindows版Emacs)では、Win標準でカーソルは
動きません。

キーのフック(hook 横取り)するようなのを書きたいのなら
Emacsもありですが、CUI で生活できる人でないと耐えられない
と思います。

[ ]
RE:16749 最終行の次の行に行く方法No.16754
tnobu2 さん 04/02/24 10:00
 
>参考までに出来るワープロソフトをあげてみてください。
>試せるなら試してみたいので。
>やっぱりEOFを超えてるとCtrl+Endで上の方にカーソルが動いたりするんでしょうか
>ね?

すでに一般的とは言えないかもしれませんが、ワープロ専用機のOASYSでは
完全なフリーカーソルで、最終行だけでなく改行までも飛び越えて文字入力
が可能だったと思います。
これはWindowsアプリとなった今でも継承されているはずです。

[ ]
RE:16754 最終行の次の行に行く方法No.16755
秀まるお2 さん 04/02/24 13:53
 
 [EOF]よりも下にカーソル移動できるようにするというのは、技術的に不可能
な話ではないです。適当にカーソル移動だけさせつつも、何か文字入力した時点
で[EOF]からその位置までを改行で埋めてやればいいってことになります。

 ただ、実際そういう処理を作るとなると、それなりに手間暇をかけることにな
りまして、それなりのユーザー様要望があるなら対応するって話になります。

 今のところはあまり強く多数のユーザー様から要望されてるって程でも無いと
思うし、世の中の流れ的には「ファイル末尾より下にはカーソル移動しない物」
って定番があると思うので、今のままにしたいと思います。

[ ]
RE:16755 最終行の次の行に行く方法No.16756
じゅげむ さん 04/02/24 14:15
 
いろいろご意見ありがとうございました。
なるほどです。
ワープロは一太郎を使っているので、ワープロではEOFを超えるのが一般的かと思っ
ていましたが、たしかにWordはそうではありませんでしたね。
私もEOFで止まる方がいいと思うときもあるの、今のままで結構でよいのですが、や
はり、文中を行ったり来たりしながらスピーディーに打ち込むときには最終行から先
にいけないのがストレスになるときがあります。「でるもんた」さんの、EOFの前に
改行を入れるという方法であれば、目的は達成できるのですが、常に自動的にそうな
るようにすることができるのでしょうか。
もしそういう設定ができるのであれば、やり方を教えていただければありがたいです。
ちなみに、CEではWZ、DOSではVZを使っているのですが、これらのエディタでもそう
いうことができるのであれば、どなたか教えていただければありがたいですが、ここ
はそういう場所でなければ、結構です。

[ ]
RE:16756 最終行の次の行に行く方法No.16757
小西 さん 04/02/24 14:50
 
自動に出来るかというと、出来ないでしょう<=普通エディタとはそんなもんです。
他の人と話がかみ合っていない気がしますので、まとめもかねて一言、二言。
  ・マクロを使いましょう。
  ・キーボードショートカットを体にしみこませましょう。
  ・行を打ち込んだら必ず改行しましょう。
以上のように、ストレスを起こさないためには、まだまだやれることがあります。
上の作業が反射で出来るようになると、とても楽です。

[ ]
RE:16755 最終行の次の行に行く方法No.16758
Arimac さん 04/02/24 14:58
 
矢印キーにマクロが割り当てられると幸せになれる人が多いかも・・・
キー入力をフックしてAlt+Rightとかのメッセージに変えるか割り込ませる方法で出
来ないか思案中(^^;

[ ]
RE:16756 最終行の次の行に行く方法No.16759
秀まるお2 さん 04/02/24 15:00
 
> ちなみに、CEではWZ、DOSではVZを使っているのですが、これらのエディタでもそう
> いうことができるのであれば、どなたか教えていただければありがたいですが、ここ
> はそういう場所でなければ、結構です。

 一応ここは秀丸のサポート拠点ではありますが、「他のエディタはこうであ
る」って情報については書き込んでいただいてかまいません。僕自身は他のエデ
ィタでどうかというのは知りません。

 しいて、現状の秀丸でやるとしたら、16748番発言ででるもんたさんから提案
されたような方法を使うことになると思います。つまり、[EOF]より下に移動し
たい時はAlt+下矢印キーを押すという作戦になります。

 マクロとしては、例えば

    #x = x;
    #y = y;
    down;
    if( !result ) {
        golineend2;
        insert "\n";
        moveto #x, #y;
        down;
    }

 みたいなのがいいかもしれません。

 下矢印キー単体にはマクロの割り当ては出来ません。

[ ]
RE:16759 最終行の次の行に行く方法No.16760
じゅげむ さん 04/02/24 19:42
 
ありがとうございました。
さっそくやってみました。
直感的に使えるので、とても使いやすいです。
これを機に、マクロを作る方法も勉強します。

> マクロとしては、例えば
>
>    #x = x;
>    #y = y;
>    down;
>    if( !result ) {
>        golineend2;
>        insert "\n";
>        moveto #x, #y;
>        down;
>    }
>
> みたいなのがいいかもしれません。

[ ]
RE:16748 最終行の次の行に行く方法No.16768
すやま たけし さん 04/02/25 10:22
 
ちょっと,本題とはずれてしまいますが。

>Emacs ではそれがデフォルトで ON になっています。
>(つい最近まで、本家版 Emacs には改行を見えるように表示する機能がなかった
> のです。今でも動作方法によっては見えません。)

Emacsでも秀丸みたいに,改行を示す文字(例えば「↓」)が表示することができる
という意味でしょうか?

[ ]
RE:16768 最終行の次の行に行く方法No.16779
でるもんた さん 04/02/26 10:21
 
でるもんたです。

> >(つい最近まで、本家版 Emacs には改行を見えるように表示する機能がなかった
> > のです。今でも動作方法によっては見えません。)
>
> Emacsでも秀丸みたいに,改行を示す文字(例えば「↓」)が表示することができる
> という意味でしょうか?

GNU Emacs 21 では、X 上で(つまり、Emacs 単独のウィンドウを開いて)
起動すると、デフォルトで改行が記号で表示されます。XEmacs も同様です。

コンソール内部での起動(emacs -nw)の場合は記号は出せません。
ただし、改行は半角スペースで表示されるので、色分け機能(私は使い方が分から
ない…)を使えば別の色で表示することは可能です。

[ ]
RE:16768 最終行の次の行に行く方法No.16780
でるもんた さん 04/02/26 11:26
 
でるもんたです。

> 最初にalt+↓に秀丸2さんのマクロを割り付け、その後、同じalt+↓に上のマクロを
> 重ねて割り付けたところ、秀丸2さんのマクロがなぜかctrl+1に割り付けられてしま
> い、削除出来なくなってしまいました。
> 割り付けキーの種類にはctrl+1というものはないのですが、この場合、どうやって削
> 除すればいいのでしょうか。

Ctrl+1 は問答無用で、マクロ登録で1番に登録されているマクロに割り当てられて
います。後から Alt+↓ に割り付けたほうのマクロは Ctrl+2 でも動くはずです。

消すには、メニューの マクロ(M)→マクロ登録(E)... で、秀まるお2さんの
マクロを一覧から消すか、11番以降に移動してください。

[ ]