2バイト文字に1バイト記入No.16761
なむnomoto さん 04/02/24 20:01
 
 なむnomotoです

 希望ですが。

秀丸Ver4.03   Windows2000 です。
 2バイト文字Sjisの文字が沢山あるファイルで、
 途中の文字をドラッグ反転(範囲指定)して、その部分だけを書き換え
 することが出来ますね。上書きできます。

 ところが、
 ATOK入力辞書で、全角でなくて、半角で書き換えしようとすると、
 ドドーとかなりの下のデータまで反転して移動してしまいます。
 元の場所が分からないくらいまで移動してしまいます。

 これを半角でも、全角のように上書きできるようにするには、
 どうすれば良いのですか?


 もう1つ
  新ファイルの「名前をつけて保存」ですが、
  新規のファイルネームをつけて保存できます。
  この場合、本文の部分を、範囲選択しておいて、このファイル保存をしようとす
る場合には、
  ちゃんと新規ファイルネーム欄にこの範囲選択文字が自動的に記入されると良い
のですが、
  現在の秀丸ではそうなっていないみたいです。
  ちょっと便利なのでこのようにならないでしょうか?
  現在は、範囲選択してコピーし、保存ダイアログの欄に「貼り付け」て
  やっています。


[ ]
RE:16761 2バイト文字に1バイト記入No.16763
アルビレオ さん 04/02/24 23:47
 
秀丸ユーザーのアルビレオです。

> 2バイト文字Sjisの文字が沢山あるファイルで、
> 途中の文字をドラッグ反転(範囲指定)して、その部分だけを書き換え
> することが出来ますね。上書きできます。
>
> ところが、
> ATOK入力辞書で、全角でなくて、半角で書き換えしようとすると、
> ドドーとかなりの下のデータまで反転して移動してしまいます。
> 元の場所が分からないくらいまで移動してしまいます。

これは半角のときの動作が本来のものです。
範囲選択している状態で何か文字を入力すると、選択中のテキストが入力した文
字と置き換えられます。

ところが、かな漢字変換がONになっているとキーを打ち込んでもその文字はIME
が管理していてアプリケーションには送られていません。かな漢字変換の確定操
作をした時点で、初めてアプリケーションは入力した文字を受け取ります。
だからカーソル位置が選択範囲の先頭にあると、上書きしているように「見え
る」だけです。
カーソルが選択範囲の最後にある状態で日本語入力してみればすぐにわかると思
います。

これらはWindowsのテキスト編集全般にに共通の操作なので、今の操作方法に慣
れてしまったほうがいいでしょう。

> これを半角でも、全角のように上書きできるようにするには、
> どうすれば良いのですか?

半角入力だと確定操作ができない(必要ない)ので、どの時点で選択範囲を解除
すればいいのか決めることができませんよね。


>  新ファイルの「名前をつけて保存」ですが、
>  新規のファイルネームをつけて保存できます。
>  この場合、本文の部分を、範囲選択しておいて、このファイル保存をしようとす
>る場合には、
>  ちゃんと新規ファイルネーム欄にこの範囲選択文字が自動的に記入されると良い
>のですが、
>  現在の秀丸ではそうなっていないみたいです。
>  ちょっと便利なのでこのようにならないでしょうか?

・複数行を選択しているとき
・選択文字列がファイル名としては長すぎるとき
・選択文字列にファイル名に使えない文字が含まれているとき(「<|>」など)
といった場合にどうするかという問題ががありますね。

私は
>  現在は、範囲選択してコピーし、保存ダイアログの欄に「貼り付け」て
>  やっています。
これで十分だと思っているので支持はしませんが、反対する理由も特にないかな。

[ ]
RE:16763 2バイト文字に1バイト記入No.16773
秀まるお2 さん 04/02/25 15:44
 
 ATOK入力辞書での動作についてはよく分からないのですが、アルビレオさんの
話の通りならそれでそういうことなんだと思います。

 もう1つの「名前を付けて保存...」については、たしかに他のワープロソフ
トなんかの場合だと、例えば一番先頭に書いた内容が自動的にファイル名欄に入
るなど、それなりに入力を省略できる工夫がされているようです。

 実は鶴亀メールでの「名前を付けて保存...」では、メールの題名がファイル
名欄に入るようにしていたりします。

 秀丸でも将来的に対応したいと思います。今現在β版にてバグ修正を誠意対応
中の他、いろいろ要望が溜まっているので適当に調整して対応時期を考えます。

[ ]
RE:16773 2バイト文字に1バイト記入No.16774
なむnomoto さん 04/02/25 22:28
 
> ATOK入力辞書での動作についてはよく分からないのですが、アルビレオさんの
>話の通りならそれでそういうことなんだと思います。

   そうなんですか。辞書をoffにするしかないのですか。
  ドドーと移動するのを止めることは秀丸で出来そうに思うのですが、
  例えば一太郎やMSワードではそうなりませんよね。
  画面が移動するのは、非常にやっかいな感じがします。


> もう1つの「名前を付けて保存...」については、たしかに他のワープロソフ
>トなんかの場合だと、例えば一番先頭に書いた内容が自動的にファイル名欄に入
>るなど、それなりに入力を省略できる工夫がされているようです。

  そうそう、それなんです。

> 実は鶴亀メールでの「名前を付けて保存...」では、メールの題名がファイル
>名欄に入るようにしていたりします。

  やっぱり、出来てる(^o^) 鶴亀も使用してますが、名前を付けて保存は、
  やったことがなっかった。(^^;) 聞いてみるもんですね。

> 秀丸でも将来的に対応したいと思います。今現在β版にてバグ修正を誠意対応
>中の他、いろいろ要望が溜まっているので適当に調整して対応時期を考えます。

  急ぐわけじゃないのですが、
  頻繁に秀丸のお世話になるものとしては、ちょっとした不便を感じて
  おりますので、宜しくお願いいたします。


[ ]
RE:16763 2バイト文字に1バイト記入No.16775
なむnomoto さん 04/02/25 22:44
 
>秀丸ユーザーのアルビレオです。

  コメントありがとうございます。     なむnomotoです

>ところが、かな漢字変換がONになっているとキーを打ち込んでもその文字はIME
>が管理していてアプリケーションには送られていません。かな漢字変換の確定操
>作をした時点で、初めてアプリケーションは入力した文字を受け取ります。
>だからカーソル位置が選択範囲の先頭にあると、上書きしているように「見え
>る」だけです。
>カーソルが選択範囲の最後にある状態で日本語入力してみればすぐにわかると思
>います。
>
>これらはWindowsのテキスト編集全般にに共通の操作なので、今の操作方法に慣
>れてしまったほうがいいでしょう。
>
>> これを半角でも、全角のように上書きできるようにするには、
>> どうすれば良いのですか?
>
>半角入力だと確定操作ができない(必要ない)ので、どの時点で選択範囲を解除
>すればいいのか決めることができませんよね。

  あ、そおうなんですか? と、アルビレオさんに逆らう気はありませんけど。
  といいつつ、QXエディタを立ち上げて実験しました。

   QXではできます。範囲選択して半角入力が上書きできます。
   もちろん、全角文字も範囲選択で、上書きできます。

   ということは、秀丸だけの特性じゃないかと思ったりしますが。
   私はちょっと不便なんでドドーと移動だけでも止めてもらえると
   良いのですけど。・・・希望に過ぎません。

>>  新ファイルの「名前をつけて保存」ですが、
        〜〜省略〜〜
>・複数行を選択しているとき
>・選択文字列がファイル名としては長すぎるとき
>・選択文字列にファイル名に使えない文字が含まれているとき(「<|>」など)
>といった場合にどうするかという問題ががありますね。

 そうなんですよね。山紫水明さんに作って頂いた検索マクロでは、
 検索結果のファイル名は全自動的に作成されてとても便利ですから、
 秀丸本体でも、やればできそうです。

>私は
>>  現在は、範囲選択してコピーし、保存ダイアログの欄に「貼り付け」て
>>  やっています。
>これで十分だと思っているので支持はしませんが、反対する理由も特にないかな。

  だと、賛成派に一票ですね。有り難うございます。(^^;)


[ ]
RE:16775 2バイト文字に1バイト記入No.16777
アルビレオ さん 04/02/26 00:17
 
アルビレオです。

>   QXではできます。範囲選択して半角入力が上書きできます。
>   もちろん、全角文字も範囲選択で、上書きできます。

どうもまったく勘違いをしていたようです。忘れてください。(^^;

> ドドーとかなりの下のデータまで反転して移動してしまいます。
> 元の場所が分からないくらいまで移動してしまいます。

というのは、[動作環境]-[編集]-[高度な編集1]の[範囲選択中にキーを押すと
その文字を検索する]がONになっているためだと思われます。

ただし、半角入力ではこのような動きはしないと思います。
IMEがOFFになっているか、ATOKが直接入力モードになっていると思われるので、
上記のオプションをOFFにする以外にも半角入力モードと直接入力モードを正し
く使い分けるのも解決策です。

>>これで十分だと思っているので支持はしませんが、反対する理由も特にないかな。
>
>  だと、賛成派に一票ですね。有り難うございます。(^^;)

反対する理由がないというだけでして…
もしも私が作者なら「選択範囲がファイル名に使えるかどうか判定する必要があ
る。コピー&ペーストという代替手段があるし、使い勝手は向上するけど労力と
プログラムの肥大化の割にはメリットが大きくない」という理由で却下すると思
います。
秀丸担当さんが書かれているように、鶴亀のコードの流用で済めば実現するかも
しれませんね。

[ ]
RE:16775 2バイト文字に1バイト記入No.16781
Iranoan さん 04/02/26 13:09
 
 なむnomoto さん今日は、Iranoan です。
>   新ファイルの「名前をつけて保存」ですが、
>   新規のファイルネームをつけて保存できます。
>   この場合、本文の部分を、範囲選択しておいて、このファイル保存をしようとす
> る場合には、
>   ちゃんと新規ファイルネーム欄にこの範囲選択文字が自動的に記入されると良い
についてですが、「名前をつけて保存」の代わりにマクロを使えば良いと思い
ます。
//------------------------ saveas.mac------------------------------------
$name = basename2;
if( basename == "" ){
  if( selecting )$$return = gettext( seltopx, seltopy, selendx, selendy );
  else $$return = gettext( 0, 0, width + 1, 0 );
  ##return = strstr( $$return, "\n" );
  if( ##return != -1 )$$return = leftstr( $$return, ##return - 1);
  call ChangeCharacter $$return, "\\", "¥";
  call ChangeCharacter $$return, "/", "/";
  call ChangeCharacter $$return, "<", "<";
  call ChangeCharacter $$return, ">", ">";
  call ChangeCharacter $$return, "?", "?";
  call ChangeCharacter $$return, "*", "*";
  call ChangeCharacter $$return, ":", ":";
  $$return = $$return + ".txt";
  changename $$return;
}
SAVEAS;
if( !result )changename $name;
endmacro;

ChangeCharacter://buffer 中の文字列を置換
  ##change_char=strlen($$2);
  $$string = "";
  while(1){
    ##number = strstr($$1, $$2);
    if(##number == -1)break;
    else{
      ##long = strlen($$1);
      $$string = $$string + leftstr($$1, ##number) + $$3;
      $$1 = rightstr($$1, ##long - ##number - ##change_char);
    }
  }
  return $$string + $$1;

[ ]
RE:16781 2バイト文字に1バイト記入No.16782
たけのこ さん 04/02/26 13:25
 
一般ユーザのたけのこです。

重箱の隅をつつくようですが(敢えて制御コード云々は置いときますが)、普通
に入力出来る文字として、水平タブや二重引用符もファイル名には使用出来ませ
ん。

(^^)/”

[ ]
RE:16782 2バイト文字に1バイト記入No.16784
Iranoan さん 04/02/26 15:02
 
 なむnomoto さん、たけのこさん今日は、Iranoan です。
> 普通
> に入力出来る文字として、水平タブや二重引用符もファイル名には使用出来ませ
> ん。
 そういえばそうですね。

 以下なむnomoto さんへ
>   call ChangeCharacter $$return, ":", ":";
の後に、
  call ChangeCharacter $$return, "\"", "”";
  ##return = 0;
  while( ##return < ' ' ){
    call ChangeCharacter $$return, str( ##return ), "";
    ##return = ##return + 1;
  }
を追加してください。

[ ]
RE:16777 2バイト文字に1バイト記入No.16787
なむnomoto さん 04/02/26 18:46
 
 なむnomotoです

 アルビレオさん、どう有り難うございます。

>> ドドーとかなりの下のデータまで反転して移動してしまいます。
>> 元の場所が分からないくらいまで移動してしまいます。
>
>というのは、[動作環境]-[編集]-[高度な編集1]の[範囲選択中にキーを押すと
>その文字を検索する]がONになっているためだと思われます。

 その通りでした。範囲選択して半角入力が簡単にできるように
 なりました。・・・・ううむ我ながら恥ずかしい。(^^;)
  ドドーと移動は無くなりました。・・・・アア良かった。

>ただし、半角入力ではこのような動きはしないと思います。

  えう? (じゃあなんでだろう。・・・独り言)

>IMEがOFFになっているか、ATOKが直接入力モードになっていると思われるので、
>上記のオプションをOFFにする以外にも半角入力モードと直接入力モードを正し
>く使い分けるのも解決策です。

 半角ですと、直接入力になる設定です。でもオプション0ffで使えそうです。

>>>これで十分だと思っているので支持はしませんが、反対する理由も特にないかな。
>>
>>  だと、賛成派に一票ですね。有り難うございます。(^^;)
>
>反対する理由がないというだけでして…

  わぁ 私の勇み足。

>もしも私が作者なら「選択範囲がファイル名に使えるかどうか判定する必要があ
>る。コピー&ペーストという代替手段があるし、使い勝手は向上するけど労力と
>プログラムの肥大化の割にはメリットが大きくない」という理由で却下すると思
>います。

  アルビレオさんが秀丸作者でなくて良かった(^o^;)☆\バキッ!
  私のようなんでも、「何でもかんでもファイル名にはならない」事は一応了解し
てる
  積もりなんですけどね。

>秀丸担当さんが書かれているように、鶴亀のコードの流用で済めば実現するかも
>しれませんね。

  ですね。秀丸担当さんが、暇で暇でしょうがなくなることを祈りましょう。


[ ]
RE:16787 2バイト文字に1バイト記入No.16788
アルビレオ さん 04/02/26 19:12
 
アルビレオです。

>>ただし、半角入力ではこのような動きはしないと思います。
>
>  えう? (じゃあなんでだろう。・・・独り言)
>
>>IMEがOFFになっているか、ATOKが直接入力モードになっていると思われるので、
>>上記のオプションをOFFにする以外にも半角入力モードと直接入力モードを正し
>>く使い分けるのも解決策です。
>
> 半角ですと、直接入力になる設定です。でもオプション0ffで使えそうです。

んーと、今は手元にATOKがないので自信はないですが、主に半角カナを入力する
ためのモードが直接入力とは別にあったような気がするのですが…
まあ解決したならどうでもいいことですね。

[ ]
RE:16784 2バイト文字に1バイト記入No.16789
なむnomoto さん 04/02/26 19:22
 
 Iranoan さん
            なむnomotoです

 早速に「反転名保存」マクロを有り難うございます。
  ご指摘の追加もしました。

 使えそうです。しかしマクロを呼び出すのが、今度は面倒ですね。
 これは置くとして、折角のマクロならば、もうちょっと便利に。

 先にファイル名があるファイルでも、範囲選択部分がファイル名に
 強制的になる方が良いみたいです。
    「名前をつけて保存」mac ですから、昔の名前はもう忘れても
    良いのじゃないかと。
 んで、最初の1行を下記にしました。

//if( basename == "" ){
 
//}

  それと、数字がファイル名になりませんね。
 どうしてでしょう。
 
 16784番へのコメント投稿 - 秀丸エディタ関連ソフト 情報交換

 とある、16784番.TXT にしたいときに不便ですね。
  a-Z は付きます。
  秀丸は V4.03 です。


[ ]
RE:16789 選択文字列を名前にして保存No.16790
Iranoan さん 04/02/27 01:01
 
 なむnomoto さん今日は、Iranoan です。
>  先にファイル名があるファイルでも、範囲選択部分がファイル名に
>  強制的になる方が良いみたいです。
 このあたりは、好みなのでご自由に。

>   それと、数字がファイル名になりませんね。
>  どうしてでしょう。
>
>  16784番へのコメント投稿 - 秀丸エディタ関連ソフト 情報交換
 今試しましたが、数字でもファイル名になりますよ。
 ひょっとしてファイルの先頭や選択文字列の改行があるのでは?

[ ]
RE:16790 選択文字列を名前にして保存No.16794
なむnomoto さん 04/02/27 11:52
 
 Iranoan さん
        ありがとうございます        なむnomotoです。
        スレッドの名前を変更して頂きました。

【選択文字をファイル名にして保存するマクロ】
>>  先にファイル名があるファイルでも、範囲選択部分がファイル名に
>>  強制的になる方が良いみたいです。
> このあたりは、好みなのでご自由に。

  有り難うございます。
  半角の"|"も全角の"|"にしないといけないので、
  追加しました。
  call ChangeCharacter $$return, "|", "|";


>>   それと、数字がファイル名になりませんね。
>>  どうしてでしょう。
>>
>
> 今試しましたが、数字でもファイル名になりますよ。
> ひょっとしてファイルの先頭や選択文字列の改行があるのでは?

  そちらでは、半角数字の語句でもファイル名になるのですか。
     ふうむ。
  改行を含んで指定はしていませんから、秀丸の私の環境設定が邪魔してるみたい
です。
       何がどこの原因なのかが分かりません。
       他のマシンの秀丸でも、半角数字はファイル名に取り込めません。
         ・・・どこの設定のことでしょうね。
   範囲選択-コピー-名前をつけて保存-貼り付ける
   ではちゃんと出来ますから良いのですけどね。


[ ]