範囲指定と行削除No.05828
ふにっ? さん 00/05/26 10:20
 
行削除コマンドをキーに割り当てて利用しているんですが、
範囲指定をして行削除コマンドを実行するとカーソルがあ
る行のみ削除されて、範囲指定状態が解除されます。

範囲指定された範囲を含む行が削除されるのが普通のよう
な気がするんですが、秀丸の場合これは仕様なのでしょう
か?

[ ]
RE:05828 範囲指定と行削除No.05829
KITA さん 00/05/26 17:52
 
行削除コマンドは現在行削除のみじゃないでしょうか。

既に範囲指定してるんなら、[Delete]キーを押せば良いとも
思えるのですが・・・

[ ]
RE:05828 範囲指定と行削除No.05830
秀丸担当 さん 00/05/26 18:41
 
>範囲指定された範囲を含む行が削除されるのが普通のよう
>な気がするんですが、秀丸の場合これは仕様なのでしょう
>か?

これはいちおう仕様ですね。
KITAさんの言われるとおりDelキーではだめでしょうか。

[ ]
RE:05828 範囲指定と行削除No.05831
ひろ さん 00/05/26 18:41
 
 ふにっ?さん今日は、ひろです。
> 範囲指定された範囲を含む行が削除されるのが普通のよう
> な気がするんですが、秀丸の場合これは仕様なのでしょう
 仕様かどうかは置いておいて(^^)、範囲選択してある状態を削除したいな
らば、単純に「削除」command を使用すればよいのではないでしょうか?
[Delete] key で簡単にできますよ。

[ ]
RE:05829 範囲指定と行削除No.05832
きいろいまふらあ さん 00/05/26 21:17
 
>行削除コマンドは現在行削除のみじゃないでしょうか。
>
>既に範囲指定してるんなら、[Delete]キーを押せば良いとも
>思えるのですが・・・

行全体は選択してないのでは?

それはともかく、マクロではなくメニューから直接実行しても
同じでした。キャレットのいる行だけが削除されました。

行選択してから行削除するマクロを作ればいいのかも。

でも、そんなことを問題にしているのではない気もする。

[ ]
RE:05831 範囲指定と行削除No.05834
ふにっ? さん 00/05/27 18:30
 
>> 範囲指定された範囲を含む行が削除されるのが普通のよう
>> な気がするんですが、秀丸の場合これは仕様なのでしょう
> 仕様かどうかは置いておいて(^^)、範囲選択してある状態を削除したいな
>らば、単純に「削除」command を使用すればよいのではないでしょうか?
>[Delete] key で簡単にできますよ。

そんなことは当然わかっているし、
現状は当然そうしています。

[ ]
RE:05832 範囲指定と行削除No.05835
ふにっ? さん 00/05/27 18:35
 
>行全体は選択してないのでは?

DELしか手がないと行全体を選択する必要がでてくるので
行全体を選択して DELキーを押してますが....
「行削除」で削除されるとなれば行全体を選択する
必要はなくなるから....

>行選択してから行削除するマクロを作ればいいのかも。

まぁ、マクロを書いてもいいんですけど、

選択された領域があるときの
「削除」のときの動きと
「行削除」のときの動きに
不思議な違いがあったので投稿しました。

個人的には選択範囲に含まれる行が消えた方が
自然に思えるんですが。

[ ]
RE:05830 範囲指定と行削除No.05836
ふにっ? さん 00/05/27 18:41
 
>これはいちおう仕様ですね。
>KITAさんの言われるとおりDelキーではだめでしょうか。

ファイルの中からいらない行を削除するときって、

この行いらない…行削除
この行いらない…行削除
ここからここまでいらない…DELキー
この行いらない…行削除

って、なるのが不便を感じています。

また、
選択範囲のない削除 …カーソルのある文字の削除
選択範囲のない行削除…カーソルのある行の削除
選択範囲のある削除 …選択範囲の文字の削除
選択範囲のある行削除…カーソルのある行の削除
って不思議じゃないですか?

[ ]
RE:05836 範囲指定と行削除No.05837
KITA さん 00/05/29 10:59
 
ふにっ? さん、まいどです。

>選択範囲のない削除 …カーソルのある文字の削除
>選択範囲のない行削除…カーソルのある行の削除
>選択範囲のある削除 …選択範囲の文字の削除
>選択範囲のある行削除…カーソルのある行の削除
>って不思議じゃないですか?
なるほど。

[Delete]キー を主体に使ってると問題はないのですが
行削除を頻繁に使うと統一感が無くなる感じですね。

つまり、
行の範囲選択してる場合には行削除で選択範囲の行を
全て削除とした方が良いようですね。
と、言う事で要望リストに追加のようです >担当担当様

マクロ関係で動作上困る人はいるのでしょうか・・・?

[ ]
RE:05835 範囲指定と行削除No.05838
きいろいまふらあ さん 00/05/29 12:58
 
きいろいまふらあです。

>>行全体は選択してないのでは?
>「行削除」で削除されるとなれば行全体を選択する
>必要はなくなるから....

あ、はいはい承知してます。
上記コメントは、5829のKITAさんへのコメントです。(^_^)

>個人的には選択範囲に含まれる行が消えた方が
>自然に思えるんですが。

…という趣旨の指摘であろうことを理解しているスタンスは表現した
つもりだったんですが。
#通じてないって。(^^;>自分

以上戯言。

確かに「削除」と「行削除」を比べると、不自然な気もするんですが、
「行選択」とか「行のコピー」なんかの動作とは整合とれてますね。
「行削除」の仕様を変更するならば、これらも仕様変更しないと
それこそ不自然かも。

「行〜」のコマンドは、キャレットのいる行を対象とする

という基本姿勢であると考えると納得でき……なくもない?(^^;

ちょっと無理がありますか?そんなにはずしてもいないと思うけど。
なんにしても開発側のポリシーに基づいた上での仕様なら、
私自身は、この件に関してはどっちでもいいやって感じです。
#今のところは。

[ ]
RE:05837 範囲指定と行削除No.05839
ひろ さん 00/05/29 14:49
 
 ふにっ?さん、KITA さん今日は、ひろです。
> 「削除」のときの動きと
> 「行削除」のときの動きに
> 不思議な違いがあったので投稿しました。
 まあこの辺りのことは個人の感覚に大きく依存しますから、不思議に感じ
る人には不気味な動作何でしょうね(^^)。

 ただ「行削除」の command は、他の多くの editor でも、cursor 行の削
除が多いと思います。また既に公開されている macro との互換性を考えると、
仕様を変更するのは難しいのではないでしょうか?

[ ]
RE:05839 範囲指定と行削除No.05840
秀丸担当 さん 00/05/29 17:45
 
> ただ「行削除」の command は、他の多くの editor でも、cursor 行の削
>除が多いと思います。また既に公開されている macro との互換性を考えると、
>仕様を変更するのは難しいのではないでしょうか?

とりあえず他のエディタを見てみたら、選択中は行削除が働かないというのが
多いようです。
要望と互換性の両方からみても、「選択中は行削除が働かない」というのは
いいような気がしますがどうでしょう。

[ ]
RE:05838 範囲指定と行削除No.05843
きいろいまふらあ さん 00/05/29 19:30
 
孤独につっぱしるまふです。自己レス。

>「行選択」とか「行のコピー」なんかの動作とは整合とれてますね。

そうか、そうすると「行選択して削除する」マクロって、ちょっと面倒。
ということに気づいたのでした。
ま、movetoとかで動き回ればいいだけなんですけどね。

あれ?shifttabってのもあったんだっけ?
でもあれはあれで何か変なことが起きたっけ?
#価値のない情報。(^^;

tabとindentともに「インデント」
shifttabとunindent「逆インデント」

ってのは仕様ってことになったんでしたっけ?
だとしたらmacro helpのをば。>担当殿

[ ]
RE:05840 範囲指定と行削除No.05844
KITA さん 00/05/29 19:32
 
秀丸担当様、お世話様です。

>要望と互換性の両方からみても、「選択中は行削除が働かない」というのは
>いいような気がしますがどうでしょう。
ん〜。意外?とマクロでも使っているようですからそれはちょっと(^^;

 開発ポリシーとして「行削除」は
「あくまでカーソル行の削除で複数行には対応しない仕様です」
 としちゃった方が良いのかもしれないです。

そうしないと、マクロ上で行削除でのエラー処理(実行禁止のケース)
が必要になってくるんじゃないかと思います。

複数行の削除は選択行全てを行削除するマクロかなんかを割り当てて
いただくことにして・・・って、できますよね? (^^;他力本願モード
#ふにっ?さんには悪いんですけど。

[ ]
RE:05844 範囲指定と行削除No.05846
きいろいまふらあ さん 00/05/29 20:32
 
KITAさんこばんはです。まふです。

>複数行の削除は選択行全てを行削除するマクロかなんかを割り当てて
>いただくことにして・・・って、できますよね? (^^;他力本願モード

どうせ削除しちゃうんなら

tab;
delete;

が一番簡単かな?
環境依存あるかなあ?

[ ]
RE:05846 範囲指定と行削除No.05848
KITA さん 00/05/29 21:01
 
きいろいまふらあ さん、まいどです!

>tab;
>delete;
おぉ〜! これってバッチシでは〜! スゴイっす!
カーソルが下にあっても選択してる行がきちんと消えてます。

と、思ったのですが、ふにっ? さんの要望を満たすには
行を選択してないときに現在行削除する必要があるかもですね。(^^;

[ ]
RE:05848 範囲指定と行削除No.05849
きいろいまふらあ さん 00/05/30 08:40
 
もはや蛇足の感も免れませんが。(^^;

>行を選択してないときに現在行削除する必要があるかもですね。(^^;

if(selecting){
    tab;
    delete;
}else{
    deleteline;
//    golinetop2;  //削除の後のキャレットの位置は好き好き?
}

こんなもん?
#ま、ほかにもいくらでもありましょうが。
#ifを使わないなら範囲内の改行を削除してからdeletelineとか
##↑そりゃ遅かろう。(^^;

もっとも、こんなのふにっ?さんはとっくに解決されてるのでは?(^^;;;

そんでもって偶然の発見なわけですが、
行削除後のキャレット位置ってのは、現行の仕様でいいのかしらん?
#削除前と同じ座標にとどまろうとする?

[ ]
RE:05844 範囲指定と行削除No.05851
ふにっ? さん 00/05/31 09:43
 
> 開発ポリシーとして「行削除」は
>「あくまでカーソル行の削除で複数行には対応しない仕様です」
> としちゃった方が良いのかもしれないです。
>
>#ふにっ?さんには悪いんですけど。

別に悪くはないです。
「要望を言うのはユーザーの勝手、取り入れるかどうかは開発者の判断」
はわかっております。

言ってみて、バグじゃなくて要望ですから
取り入れられたらラッキーってな感じです。

[ ]
RE:05849 範囲指定と行削除No.05852
ふにっ? さん 00/05/31 09:44
 
>>行を選択してないときに現在行削除する必要があるかもですね。(^^;
>
>if(selecting){
>    tab;
>    delete;
>もっとも、こんなのふにっ?さんはとっくに解決されてるのでは?(^^;;;

してませんでした (^^;;
要望を書こうと思ってから、マクロで実現できるなぁ...と思いました。

ただ、まぁ、不思議な感じもあったので投稿しました。

[ ]
RE:05843 範囲指定と行削除No.05854
秀丸担当 さん 00/05/31 19:01
 
>tabとindentともに「インデント」
>shifttabとunindent「逆インデント」
>
>ってのは仕様ってことになったんでしたっけ?
>だとしたらmacro helpのをば。>担当殿

shifttabとunindentは同じですが、tabとindentは違います。
ヘルプにはshifttabは行選択の補完ということになっていますが、
正確には逆インデントですね。
前にもこんな話しをしたような? ヘルプに注意書きが必要ですね。

[ ]
RE:05844 範囲指定と行削除No.05855
秀丸担当 さん 00/05/31 19:01
 
>>要望と互換性の両方からみても、「選択中は行削除が働かない」というのは
>>いいような気がしますがどうでしょう。
>
>ん〜。意外?とマクロでも使っているようですからそれはちょっと(^^;

選択中にdeletelineするマクロはあるでしょうか?
たぶんあまりないような気がします。確証はないですが。
うーむ。

[ ]
RE:05854 範囲指定と行削除No.05860
きいろいまふらあ さん 00/05/31 19:51
 
>>tabとindentともに「インデント」
>shifttabとunindentは同じですが、tabとindentは違います。

確かに違いました。失礼しました。

tab
・何も選択していない状態→キャレット位置にタブを挿入
・1行の中で文字列を選択状態→選択文字列をタブに置換
・複数行にまたがって選択状態→選択範囲を含む各行の頭にタブを挿入
・1行以上を行選択状態→選択されている各行の頭にタブを挿入

indent
・何も選択していない状態→何もしない
・1行の中で文字列を選択状態→その行の頭にタブを挿入
・複数行にまたがって選択状態→選択範囲を含む各行の頭にタブを挿入
・1行以上を行選択状態→選択されている各行の頭にタブを挿入

ということで1番目と2番目の場合の動作が異なりました。
3番目と4番目は同じ動作のようです。

んーーーと、それぞれどういう場合に使うという想定なのでしょう?(^^;

それと、もしかしたら各種設定によって上の動作は違ってくるのでしょうか?

[ ]
RE:05860 範囲指定と行削除No.05879
秀丸担当 さん 00/06/02 17:39
 
>ということで1番目と2番目の場合の動作が異なりました。
>3番目と4番目は同じ動作のようです。
>
>んーーーと、それぞれどういう場合に使うという想定なのでしょう?(^^;
>
>それと、もしかしたら各種設定によって上の動作は違ってくるのでしょうか?

各種設定によっては多分変わらないと思います。
動作は、その名の通り、tabはtabキーを押したときと同じ動作、
indentはインデントしたいときの動作を想定しています。

[ ]
RE:05879 範囲指定と行削除No.05883
きいろいまふらあ さん 00/06/02 20:10
 
まふです。つまらない話で恐縮です。

>indentはインデントしたいときの動作を想定しています。

だとしたら、何も選択してない場合もその行をインデントして欲しい
と思うのは私だけ?(^^;

[ ]
RE:05883 範囲指定と行削除No.05884
番頭++ さん 00/06/02 21:42
 
きいろいまふらあ さんへ

おしさしぶりです、デースイモードですが ...
文章を書くとき、プログラモとかのコードを書くとき、
ドチラともいえません。

[ ]