[ 新規に投稿する ]

ソート&重複行削除No.41957
(-L-) さん 25/05/27 12:23 [ コメントを投稿する ]
マクロでやれとか言われそうですが、これだけのためにという感じですしで要望してみます。

https://step-learn.com/article/hidemaru/009-duplicate.html
に書かれていることを実行するとマクロ不要で実現できそうであることから

秀丸エディタの 編集 - 変換 のメニュー(ソートの下あたり)に

 ソート&重複行削除

とでもして、標準機能に盛り込まれてくれると、このためだけに
このURLを思い出したり、
EXCEL立ち上げたりしなくていいいなぁと。

[ ]
RE:41957 ソート&重複行削除No.41958
igus さん 25/05/27 14:11 [ コメントを投稿する ]
  //ソートして重複行削除するよ.mac

setcompatiblemode 0x0F;
begingroupundo;disabledraw;
if(!selecting)selectall;
selectline 1;
filter "","Sort","000000000000000\"00000";
#tx=seltopx;#ty=seltopy;#ex=selendx;#ey=selendy;
while(1){
  replaceallfast "(^.+\n)\\1","\n\\1",regular,inselect;
  if(!result)break;
  moveto #tx,#ty;beginsel;moveto #ex,#ey;
}
moveto #tx,#ty;beginsel;moveto #ex,#ey;
replaceallfast "^\n","",regular,inselect;
endgroupundo;enabledraw;
[ ]
RE:41958 ソート&重複行削除No.41959
(-L-) さん 25/05/27 14:52 [ コメントを投稿する ]
マクロありがとうございます。

マクロは
https://hide.maruo.co.jp/lib/macro/erasesameline213.html
などすでにありますし、先ほどのURLの動きを再現でもできると思っています。

要望は、マクロではなく標準機能として採用されないかなぁと。

ここに常駐されている秀丸エディタに精通されている方々は別とすると、マクロを増やしたり、マクロそのものを管理するのが面倒なため、ある程度、使用頻度の少ない機能で、他で実現可能な場合は、EXCEL立ち上げて処理したりと秀丸エディタ以外で処理しようとすると思っています。
そんなことするのは、私だけですかね。

ということで、標準で備わってると、皆さん便利なシーンがあるのかなと思ったまで。
[ ]
RE:41957 ソート&重複行削除No.41960
ANACOSTIA さん 25/05/27 15:22 [ コメントを投稿する ]
  https://hide.maruo.co.jp/lib/hmconv/xsortv154.html

 メニューバー[その他(O)] → [動作環境(E)...] → [編集] → [変換]から[変換モジュール(M)]内の[(標準の変換)]のチェックを全て外し、新しく登録した[xsorthmn64]で必要な分のチェックを入れ、これ(変換)をキー割り当てして使っています。
 小生にとってはこれで十分です。
[ ]
RE:41960 ソート&重複行削除No.41961
(-L-) さん 25/05/27 15:39 [ コメントを投稿する ]
> 小生にとってはこれで十分です。

秀丸エディタに明るい人たちは自己解決するので充分になっていると思われます。

ざっと見た感じ
https://hide.maruo.co.jp/lib/macro/erasesameline213.html
https://hide.maruo.co.jp/lib/macro/cho-duplication_line_delete_ver1_0.html
https://hide.maruo.co.jp/lib/macro/delete_line.html
https://hide.maruo.co.jp/lib/macro/sconcho01.html
https://hide.maruo.co.jp/lib/hmconv/xsortv154.html

と、これだけ重複行削除のマクロが存在するってことは、それなりに皆必要とするシーンがあるのだと思います。
なので、(個人が充分かどうかの話はおいておいて)標準搭載されるといいなぁ。という話です。
[ ]
RE:41961 ソート&重複行削除No.41963
秀丸担当 さん 25/05/27 16:20 [ コメントを投稿する ]
  ご意見ありがとうございます。
重複行削除の機能はあったらいいかもしれません。
参考にさせていただきます。
[ ]
RE:41963 ソート&重複行削除No.41964
(-L-) さん 25/05/27 16:30 [ コメントを投稿する ]
>参考にさせていただきます。

結果、こちら方向でしたか。
ありがとうございました。
[ ]
(発言者削除)No.41965
石田 さん 25/05/27 17:10
 
[ ]
RE:41958 ソート&重複行削除No.41966
石田 さん 25/05/27 17:11 [ コメントを投稿する ]
  >//ソートして重複行削除するよ.mac


このマクロ拝借しました。
colder さんの変換モジュールは自分には贅沢過ぎました。


[ ]
RE:41964 ソート&重複行削除No.41968
(-L-) さん 25/05/27 18:09 [ コメントを投稿する ]
>>参考にさせていただきます。

秀丸エディタの標準搭載ではない方向で、ついでに色々調べていたら、

https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/sort

なんてことでしょう。(sort /?で出ないというトラップ付)

秀丸エディタのプログラム実行で、
コマンドライン:sort /unique
詳細指定 - 標準入力に(現在の内容)

で実現できました。
秀丸マクロは秀丸世界だけですが、dosコマンドのsortは色々なシーンで通用するので、私はこちらを身につけることにしました。


(本トピックを起こしてしまったので)情報共有まで。
[ ]
RE:41968 ソート&重複行削除No.41969
igus さん 25/05/27 22:28 [ コメントを投稿する ]
  秀丸エディタのプログラム実行は使ったことがなかったのですが面白いですね。
ruby の場合は次の入力でうまくいきました。

コマンドライン:ruby -e "puts readlines.sort.uniq.join"
詳細指定 - 標準入力に(現在の内容)
[ ]
RE:41969 ソート&重複行削除No.41970
(-L-) さん 25/05/27 22:37 [ コメントを投稿する ]
>秀丸エディタのプログラム実行は使ったことがなかったのですが面白いですね。

ワンライナーで色々できたり、
cmd /c dir /b/s
とか内部コマンドで色々できたり、この機能は便利ですね。

個人的には、秀丸エディタのプログラム実行はよく使います。
プログラム実行に記述する部分は、秀丸世界以外でも知っておくと便利なシーンが多々あります故、覚えるのは苦になりません。

[ ]
RE:41970 ソート&重複行削除No.41971
秀丸担当 さん 25/05/28 09:30 [ コメントを投稿する ]
  > コマンドライン:sort /unique
uniqコマンドはWindowsに追加されないのかと思っていましたが、そういう方法があったのですね。
[ ]
RE:41971 ソート&重複行削除No.41972
(-L-) さん 25/05/28 13:04 [ コメントを投稿する ]
>> コマンドライン:sort /unique
>uniqコマンドはWindowsに追加されないのかと思っていましたが、そういう方法があったのですね。

マクロはたくさん公開されている。
マクロではなく正規表現でのやりかたが紹介されている。(マクロ管理が面倒な人向け?)
dosコマンドも進化して対応している。

ということで、やはり潜在需要はあるものかと。
(個人的には、落とし所が決まりましたが)いずれ秀丸エディタへの標準搭載されることを期待します。
[ ]
RE:41972 ソート&重複行削除No.42007
(-L-) さん 25/06/19 17:31 [ コメントを投稿する ]
>(個人的には、落とし所が決まりましたが)いずれ秀丸エディタへの標準搭載されることを期待します。

hm948b2_signed.exe
に標準搭載で、わーい。と思って動かしてみたところ、データがあらかじめソートされてないと動作しないようです。

a
z
z

はOKで、

z
a
z

はNGのようです。

※個人的には、「ソート&重複行削除」という標準搭載でも構わないのですが。
[ ]
RE:42007 ソート&重複行削除No.42008
秀丸担当 さん 25/06/20 09:19 [ コメントを投稿する ]
  早速のご確認ありがとうございます。
重複行削除は、隣接した行のみを対象としています。
離れている場合はソートされている必要があります。
標準機能としてはこちらが妥当と思いました。
[ ]
RE:42008 ソート&重複行削除No.42009
(-L-) さん 25/06/20 10:17 [ コメントを投稿する ]
>重複行削除は、隣接した行のみを対象としています。
>離れている場合はソートされている必要があります。
>標準機能としてはこちらが妥当と思いました。

この動きとするのであれば、例えば

 重複行削除(隣接行のみ)

などのメニュー名(この例でもわかりにくいと思いますが。)にしないと、
ユーザーは混乱すると思います。

z
z
a
b
z
c

のような結果が

z
a
b
z
c

となるのですが、ユーザーは、4行目のzも削除されているものだと思いこむと思います。(重複行削除というメニュー名なので)

たとえば、対象が何百行とあった場合に、このユーザーの思いこみと実際の動きの違いに気がつけず、データ集計などの作業ミスにつながるおそれがあると思います。

この動作とするならば、隣接する行のみですよ。という表現が、メニュー名に入っているべきかと。
[ ]
RE:42009 ソート&重複行削除No.42010
秀丸担当 さん 25/06/20 10:53 [ コメントを投稿する ]
  ご指摘ありがとうございます。
確かにそのほうがわかりやすいと思います。
参考にさせていただきます。
[ ]
RE:42010 ソート&重複行削除No.42011
石田 さん 25/06/20 19:30 [ コメントを投稿する ]
  現状の方が使いやすいと思います。ただ、「ソート」の真下に「重複行削除」があった方が便利だと思います。

(二つに分かれている方が便利だと思う根拠):ソートには「変換方式」のオプション画面がありますが、
「重複行削除」にも将来、変換オプションが入って来ると思います。ソート/重複行削除 を一つにまとめると
オプション画面が複雑になりすぎると思います。colder さん作の以下の変換モジュールを触って思いました。
colder さんでも使い勝手を考えて一つにはまとめなかったと勝手に推測します。
ソート/ユニーク は上級者向け機能だと思うし、初心者(自分含む)が誤操作する事はないと思います。

※ 掲示板で要望が出されて一月も経たずに標準機能に組み込まれた事について感謝します。
---
https://hide.maruo.co.jp/lib/hmconv/xsortv154.html
ソート改造版v1.54     colder 2018/04/08
[ ]
RE:42011 ソート&重複行削除No.42012
(-L-) さん 25/06/21 08:17 [ コメントを投稿する ]
>現状の方が使いやすいと思います。ただ、「ソート」の真下に「重複行削除」があった方が便利だと思います。

現状がいいとか、ソートと組み合わせがいいとかの話ではなく、今の仕様なら、ユーザーにその動きがわかる項目名にしたほうがいいという話でとらえています。(そして、それは次回の版で改善すると思っています)

現状仕様の場合は、改行が複数連続していたものをひとつに纏めるなどのシーンで使えるなど、それぞれに使いやすいシーンがある(が、正規表現使えばできることでもある)と思います。

なので、どっちの仕様が使いやすいか。
という話は人それぞれ(のよく作業する内容によるもの)かと。

ソートの真下に重複行削除がある方がユーザーフレンドリーという話には私も一票です。
[ ]
RE:42012 ソート&重複行削除No.42013
(-L-) さん 25/06/21 20:53 [ コメントを投稿する ]
ふと、思いついてしまいましたが、

ソートのオプション指定画面に、

 □ソート後に隣接した重複行を削除する

というのが、追加され、これにチェックをいれたら

(既存の)ソートが行われたあと、(今回β版で実装された)重複行削除を連続して実行してくれる。

というのもあると、ソート&重複行削除したいときに、メニューから変換を2回選択しなくていいなぁと。(実装が面倒なら無視で構いません。)

[ ]
RE:42013 ソート&重複行削除No.42014
石田 さん 25/06/22 12:00 [ コメントを投稿する ]
  重複行削除 の名前は一般的な ユニーク に変更した方が分かりやすいと思います。

ソート/ユニーク が一対のまとまったコマンドである事は、知られていると思います。
[ ]
RE:42014 ソート&重複行削除No.42015
でるもんたいいじま さん 25/06/22 12:27 [ コメントを投稿する ]
  こんにちは。ネット老人の「でるもんた・いいじま」と申します。

> 重複行削除 の名前は一般的な ユニーク に変更した方が分かりやすいと思います。
> ソート/ユニーク が一対のまとまったコマンドである事は、知られていると思います。

個人的には反対です。そもそも uniq というコマンドを知っている人は、もう既にどこかから uniq.exe のバイナリを調達して(あるいはperlか何かでスクリプトを自作して)、「外部コマンド実行」で使用しているはずです。

私の印象としては、こんな感じです:
「重複行削除」→口頭では確かに冗長だけど、漢字表記を目で見れば、簡潔で分かりやすい。
「uniq」→私自身はずっと前から知っているけど、CUI文化に馴染みの薄い人は多分知らないだろうな。
「ユニーク」→初見では「ちょっと何言ってるのかわからない」。「ソート」とペアにされてやっと「ああ、uniqのことね」と理解できる。

ではでは。
[ ]
RE:42015 ソート&重複行削除No.42016
石田 さん 25/06/22 13:04 [ コメントを投稿する ]
  > 「ユニーク」→初見では「ちょっと何言ってるのかわからない」。「ソート」とペアにされてやっと「ああ、uniqのことね」と理解できる。

英語版秀丸は触ったことはないですが、メニュー表記は sort / uniq  となっている筈です。
最初は「ユニーク」の文字に戸惑うかも知れませんが、「ソート」の真下に「ユニーク」を置けば
慣れると思います。「重複行削除」は重い感じがするし、今風ではない印象。
[ ]
RE:42015 ソート&重複行削除No.42017
(-L-) さん 25/06/22 16:46 [ コメントを投稿する ]
>> 重複行削除 の名前は一般的な ユニーク に変更した方が分かりやすいと思います。
>> ソート/ユニーク が一対のまとまったコマンドである事は、知られていると思います。

PCに触れる一部界隈では知られているのは事実だと思います。
ここでいうユニークとは、unixのuniqコマンドライクのことと捉えます。
(私個人もユニークで理解できるので、この表記でもいいのですが、最終的な意見は後述します)

>「重複行削除」→口頭では確かに冗長だけど、漢字表記を目で見れば、簡潔で分かりやすい。

ユニークを重複行削除(連続行のみ)的な表現とするのは、「秀丸エディタ」っぽい表現だと捉えています。
なんとなくですが。

いずれにせよ公式が採用したものになると思いますが

日本語版の秀丸エディタを使うユーザーを思い浮かべたときに、ユニークという言葉は、大きくわけると

・uniqコマンドを思い浮かべる人の想像する動作
・英単語のuniqueを思い浮かべる人の想像する動作
・日本語のユニークという言葉を思い浮かべる人の想像する動作

の3種類は確実に存在すると思います。

最後の日本語のユニークと思う人は、動作が想像できないでしょうからヘルプなどで調べるであろう、そうして、あー。こういう動きするのかと勉強したうえで納得。となるので、あまり問題にならないと思われます。

英単語のuniqueを思い浮かべる人は、日本語での”重複行削除”のみ表記と同様に、思った動作と実際の動きが異なる可能性があるので、あまりよろしくないと個人的に思います。

ということで、なんとなく秀丸っぽい雰囲気の漢字表記に一票いれておきます。
[ ]
RE:42017 ソート&重複行削除No.42022
秀丸担当 さん 25/06/23 10:29 [ コメントを投稿する ]
  いろいろご意見ありがとうございます。
総合的に考えて、やはり重複行削除(連続行のみ)的な表現とするのが一番妥当かなと思います。
[ ]

[ 新規に投稿する ]