サクラエディタふぁん ..
669:名無しさん@お腹いっぱい。
07/11/10 08:07:38 89KPZ+Ne0
>>660 賛成 「661>> スクロールバーの掴む所、太さを自由に変えたい」
水平スクロールバーを自動で消して欲しいって。
そんなチラチラしてどうするんだ?
670:名無しさん@お腹いっぱい。
07/11/10 08:27:43 G6xwEJyl0
これは見事な自演ですね
671:名無しさん@お腹いっぱい。
07/11/10 09:29:32 ae+23pAh0
実際のところ実装が難しいのかね?
スクロール必要無いときは無効になるエディタって実際結構一般的だと思うし、そういうエディタが>>658がいうみたいに全行スキャンしてるとは思えないんだけども。どうなんだろう。
最初に全行スキャンして最長行の長さ保持しといて、あとは編集された行だけスキャンとか、そんな感じなんだろうか。
>>669
表示/非表示状態ってそんなに行ったり来たりするか?
672:669
07/11/10 09:57:27 89KPZ+Ne0
なるほど、画面の中から最大桁を探すなら、行ったり来たりするけど、
ファイルの中から最大桁を探して、自動で桁数を設定して?それってどのタイミングでやるの?
サクラエディタのマクロで桁数自動設定できなかったら無理。実際1000 桁とかにしておいたら?
673:名無しさん@お腹いっぱい。
07/11/10 10:16:10 Fwau/F3O0
実装が難しいかどうかは知らんが
最長行の長さ保持
→編集中の行がそれを超えたら最長
→最長行が編集されて短くなったら・・・全行サーチ
でかくないファイルなら・・・
674:名無しさん@お腹いっぱい。
07/11/10 11:52:09 pSb3cgJs0
最大桁数を常時監視しておけば。
比較的下のレイヤーにある行バッファを管理している部分にくっついてる
書き込み関数にその機能を丁寧に備えてあげれば、
楽になるかもしれないよーな。といっても他力本願(しゅん)
675:674
07/11/10 12:05:45 pSb3cgJs0
うわ既出だったごめん。
なのでも少し詳しく。
各行の桁数値と行へのポインタとの対をリストに保管して、
桁数値を基準にソートしておけばいーよーな。
ヒープアルゴリズムを使うと楽かもしれない。
でもやっぱり、他力本願。
676:名無しさん@お腹いっぱい。
07/11/10 19:07:25 2a7tz7Mw0
画面に表示している行を全てスキャンして、文字数を行の変数に記録、スクロールバーはその中で最長の行に合わせる
↓
・縦スクロールで新たな行が表示されたら、それらの行もスキャン。スクロールバーより長い行があったらスクロールバーをそれに合わせる
・行を編集する度に、その行に対応した変数の値を更新する。スクロールバーの長さを上回ったらスクロールバーをそれに合わせる
・一度延びたスクロールバーを戻すには、「スクロールバーを画面内の最長行に合わせる(仮)」コマンドを実行する。
別に、厳密に最長行に合わせる必要は無いのだから、こんな仕様でいいと思った。
677:名無しさん@お腹いっぱい。
07/11/10 19:57:53 Fwau/F3O0
>>676
画面に表示している行なら計算量も少ないだろうが、
きっと、違うじゃんと文句言い出す奴が出てくるな
678:名無しさん@お腹いっぱい。
07/11/10 20:51:02 30EEf9ZL0
>>676
違うじゃん
679:名無しさん@お腹いっぱい。
07/11/10 23:28:06 2a7tz7Mw0
>>677
ファイルを開いた時点で全行スキャンするオプションを付ければ良くない?
短くする時は「現在の最長行に合わせる(仮)」コマンドを実行してもらうとして。
10240文字固定で文句を言わない人間がこの仕様で文句を言うとは思えない。
リアルタイムで最長行に合わせても重くならないアルゴリズムは作る人が大変だろうし。
ちなみに、リアルタイムで合わせても重くならないアルゴリズムとしては
・スクロールバーは10文字単位で伸縮する(1文字単位で伸縮させたい時は、以下の文に含まれる"/10"を全て無視する)
・スクロールバーの最大幅は事前に指定する。これを超えた文字数の行は、最大幅と同じ文字数の行として扱う。
・まず、int型で要素数が(最大幅/10+1)の配列gyosuを用意。
・行をスキャンして、gyosu[その行の文字数/10]の値を+1。これを全ての行に対して行う。最長行の長さもこのときに求める。
・行が編集される度に、gyosu[編集前の文字数/10]の値を-1し、gyosu[編集後の文字数/10]の値を+1する。
・gyosu[最長行の長さ/10]が0になったら、gyosuを調べて最長行の長さを更新する。
・gyosu[(最長行の長さ/10)より大きい値]が1になったら、最長行の長さを更新する。
・最長行の長さが更新されたら、スクロールバーをそれに合わせる。
このやり方なら、何百万行のファイルだろうと重くならない。(最初のスキャンを除く)
680:名無しさん@お腹いっぱい。
07/11/10 23:31:39 6SXinnUF0
そんな難しく考えなくても結構かんたんに実装できるお。
681:名無しさん@お腹いっぱい。
07/11/11 00:27:50 AvM+as9B0
>>679
乙
>>680
kwsk
682:名無しさん@お腹いっぱい。
07/11/11 02:14:50 IV+UtbM70
>>681
ああ、そういう考え方はあるな。
確かに単なる繋ぎとしてなら、かなり使えるかも。
683:682
07/11/11 02:15:49 IV+UtbM70
すまん、誤爆>>505
684:名無しさん@お腹いっぱい。
07/11/11 03:25:24 NTEr6wED0
>505はEdMaxスレかよ!
685:名無しさん@お腹いっぱい。
07/11/11 09:28:29 tup5XgGx0
>>679
gyosu[編集前の文字数/10]
を
gyosu[(編集前の桁数+(16-1))/16]
などとして桁数に対する端数切り上げ計算にすれば
さらにいかしたものになりそう。
686:名無しさん@お腹いっぱい。
07/11/15 12:26:46 PWSFvCF60
hogeを含む行のうち^\s*'で始まらないもの
をgrepするのにvimでは
\(^\s*'.*\)\@<!hoge
でできるようなんですが、サクラで
(?<!^\s*'.*)hoge
とするとダメでした。
これをgrepするにはどうすればいいでしょうか?
687:名無しさん@お腹いっぱい。
07/11/15 23:08:41 48/EQ2ah0
vim使いなのに・・・
688:名無しさん@お腹いっぱい。
07/11/17 09:09:58 B5NZYa+30
grep するときは grep 用の正規表現を使わなくちゃで、編集画面検索用の正規表現とは違うんじゃない?
689:名無しさん@お腹いっぱい。
07/11/17 09:22:52 B5NZYa+30
すまん。grepはエディタに組み込まれてた。
grep.exe が別にあって、それを呼び出してると思ってたorz
690:名無しさん@お腹いっぱい。
07/11/17 12:20:31 5Ccbg5q10
>>686
試してないから動く保証はないけど
置換s/^\s*'/'/gに通した一時ファイルに
正規表現/^[^'].*?hoge.*/でgrepコマンド実行するとか
691:名無しさん@お腹いっぱい。
07/11/17 13:50:56 KX6VL0rK0
置換⇒grepは鉄板
鉄板女優といえばホ
692:名無しさん@お腹いっぱい。
07/11/19 21:47:44 jE6KKDny0
>>526と同じ症状なんですが、本当に消せない?
困ったなぁ・・・。
693:名無しさん@お腹いっぱい。
07/11/19 21:53:46 xgu4LjI+0
>>692
レジストリエディタなり各種右クリック編集ツールや関連付けツールなどお好みのものをどうぞ。
694:名無しさん@お腹いっぱい。
07/11/19 21:56:33 jE6KKDny0
レジストリはちょっとやってみてわかんなかったけど
右クリック編集ツールなんてあるのか!どうもありがとう。助かりました。
695:名無しさん@お腹いっぱい。
07/11/19 22:24:09 e7bXEHSF0
SendToに入ってるだけじゃないの?しらんけど
696:名無しさん@お腹いっぱい。
07/11/19 23:01:10 7nODOHkh0
>>695
SendToって送るメニューじゃないの?
697:名無しさん@お腹いっぱい。
07/11/20 00:37:11 T3DDdljc0
全米のSendToが泣いた
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4958日前に更新/181 KB
担当:undef