1 名前:名無しさん@お腹いっぱい。 [2007/08/16(木) 21:23:29 ID:0S5jxqyO0] 一年余りの充電期間を経て、まさかの復活を遂げたテキストエディタ VxEditorの、主にマクロを開発したいスレです。 公式サイト? VxEditorの部屋 ttp://dr-x.hp.infoseek.co.jp/ ダウンロードページ ttp://www.vector.co.jp/soft/win95/writing/se236058.html 参考スレッド‐テキストエディタをまったり語ろう ver.23 ttp://pc11.2ch.net/test/read.cgi/software/1180879766/
2 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/16(木) 21:24:49 ID:0S5jxqyO0] VxEditorの主な特徴 ・SDI型(一ファイル一画面) ・AWK型とPerl型の二種類の正規表現に対応 ・JavaScript互換のスクリプト言語DMonkeyによる機能拡張 ・Word/Excelファイルも縦断検索できるVxGrep ・USBメモリによる携行に対応 ・鬼車を採用した正規表現エンジン 先人によるお役立ちサイト VxEditor & DMonkey布教ページ ttp://lukewarm.s41.xrea.com/DMonkey/dmsh/cliputil.html (*゚ー^) 補完タンのページ ttp://www.geocities.co.jp/SiliconValley-Oakland/4672/ DMonkeyを採用し、マクロを互換できるかもしれないテキストエディタ JmEditor WHiNNY 参考スレッド‐テキストエディタJmEditorスレ 2 ttp://pc11.2ch.net/test/read.cgi/software/1151128986/
3 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/16(木) 21:28:48 ID:0S5jxqyO0] VxEditorで複数の検索置換を一括で行うDMonkeyマクロ-1 たとえば、選択範囲の中を検索して『hoge』があったら『予約』に、 『huga』があったら『表示』に置換を一回で行いたい場合のマクロ。 var e = new Editor; //エディタオブジェクトの作成 var text; text = e.SelText; //選択したテキストを取得 text = text .replace(/hoge/g,"予約") .replace(/huga/g,"表示") ; e.SelText = text; 本来はこれでいいはずですが、DMonkeyの正規表現エンジンは外国製の、 2バイトには対応していないものだそうで、このまま実行するとシフトJISの 一部の文字が化けてしまい、『予約』 は 『蘭・』、『表示』 は『侮ヲ』に なってしまいます。 (所謂『ダメ文字』問題)。
4 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/16(木) 21:31:57 ID:0S5jxqyO0] VxEditorで複数の検索置換を一括で行うDMonkeyマクロ-2 そこで>1が『テキストエディタをまったり語ろう ver.23』スレッドで相談したところ、 147氏がWSHによるマクロを作ってくださいました。こちらの正規表現エンジンは 普通に2バイト文字が通るので、問題なく置換できるようになりました。 e = new Editor; //エディタオブジェクトの作成 text = e.SelText; //選択したテキストを取得 // Windows Script Host(WSH)のRegExpオブジェクトを作成する reg = new ActiveXObject("VBScript.RegExp"); reg.IgnoreCase = false; //大文字と小文字を区別する reg.Global = true; //文字列全体を検索する reg.Pattern = "hoge"; text = reg.Replace(text, "予約"); reg.Pattern = "huga"; text = reg.Replace(text, "表示"); reg.Pattern = "hage"; text = reg.Replace(text, "はげ"); e.SelText = text;
5 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/16(木) 21:34:06 ID:0S5jxqyO0] VxEditorで複数の検索置換を一括で行うDMonkeyマクロ-3 さらに強欲な>1は検索文字列と置換文字列がもっとくっつけられないかと要求し、 親切な147氏は更に改良を加えてくださいました。 var words = new Array( "hoge","予約", "huga","表示", "hage","はげ" //←最後の行の末尾には , をつけない ); var e = new Editor; //エディタオブジェクトの作成 var text; text = e.SelText.toUTF8(); //選択したテキストを取得してUTF-8に変換 for (i = 0; i < words.length; i += 2) { text = text.replace(words(i).toUTF8(),"g",words(i+1).toUTF8()); } e.SelText = text.fromUTF8toSJIS(); //テキストをシフトJISに変換
6 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/16(木) 23:02:35 ID:0S5jxqyO0] それからこの一括置換マクロたち、VxEditor以外に JmEditorやWHiNNYで試してみましたが、ちゃんと動きました。
7 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/17(金) 02:15:51 ID:r+KEpPD80] 終了時の位置やサイズを記憶してくれないけどなんで?
8 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/17(金) 07:51:34 ID:YFoGMR9v0] >>7 設定見ろよ… 表示→現在の設定の変更→ ウィンドウ→ 起動時のウィンドウサイズ
9 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/17(金) 11:06:13 ID:SnozmBKE0] カーソルを最終行に移動させる起動オプション/jeをつけて 起動するとエラーがでます。 OSは2ksp4 VxEditor0.5.4.0 VxMain.exeのアドレス0041D820でアドレス80000002に対する読み込み違反がおきました。
10 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/17(金) 12:14:43 ID:r+KEpPD80] >>8 チェックいれるとそうなる? win2kの環境だとチェックいれてもならないから聞いてみたんだけど
11 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/17(金) 14:56:34 ID:U1fmd+VM0] >>7 表示→共通の設定→ 履歴→ ウインドウの大きさと位置を保存する
12 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/19(日) 01:11:50 ID:MajfYjhf0] URLを右クリックしたときにURLをコピーする項目がほしいな。
13 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/19(日) 17:21:10 ID:8Oo9QEsa0] あー分かる。
14 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/21(火) 19:05:52 ID:L9fwRN/I0] スレたておめっと。
15 名前:名無しさん@お腹いっぱい。 [2007/08/21(火) 19:10:14 ID:L9fwRN/I0] あげておくか。
16 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/24(金) 15:58:08 ID:4+hSvPwq0] IEのソースをVxで表示するようにレジストリ弄ったら、標準の設定で開かれるんで、 レジストリの値に/sオプション付けたら 「〜VxEditor.exe /s"HTMLの設定"が見つかりません」とエラーが出たのですが、 解決方法はありますでしょうか?
17 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/24(金) 17:03:33 ID:AEKUazIb0] HTMLを「HTMLの設定」って設定で使用してるのなら、レジストリの値は 〜VxEditorHtml.exe でOK
18 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/25(土) 02:28:56 ID:SRdlGvU/0] >16 VxEditorのフォルダを覗くと、VxEditor.exeの日付とバイトサイズが同じで 名前が異なるVxEditorHtml.exeという実行ファイルがありますよね。 これを実行すると、ファイルがHTMLの設定で開かれるので、ブラウザの ソースエディタにはこちらを指定すればよろしいかと存じます。 そういえばReadmeファイルにも何故かこのことは書いてませんね。
19 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/25(土) 03:59:50 ID:H6t87gnE0] >>17-18 おお、こんなんがあったのですね。 上手くいきました。感謝感謝。
20 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/26(日) 19:42:36 ID:4Y167SKc0] 編集した行の行番号が太字にするには、何処を設定すればよいのでしょうか。 スクリプト書く必要があるなら、これから勉強します… 各ファイル種別ごとの設定の色設定あたりにもないし、共通の設定にも見つかりません。
21 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/26(日) 19:48:44 ID:j4Pa1Gxq0] 見出しの行の文字を大きくするには、何処を設定すればよいのでしょうか。 スクリプト書く必要があるなら、これから勉強します… 各ファイル種別ごとの設定の色設定あたりにもないし、共通の設定にも見つかりません。
22 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/26(日) 21:11:42 ID:4Y167SKc0] 二重投稿したかと思ったら、俺が茶化されるだけかい(w
23 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/26(日) 21:25:27 ID:vyRt6TUl0] >>20 無理 作者にメールしる >>21 引用符とか単行コメントとかに設定するしかない
24 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/26(日) 23:54:42 ID:4Y167SKc0] >>23 thx 了解です。 これだけ出すのもなんなんで、もうちょっと使ってから不具合報告とかとまとめて送ってみます。
25 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/29(水) 22:11:37 ID:EIuE/GYh0] 行頭から始まる数字に:をつけて時間を表そうと、 1 なら :00を追加して1:00 に、3.40 なら .を:にして3:40に、という具合に 一括置換すべく正規表現を使って、 ^(\d+)\n → $1:00 \. → : というパターンを用いたDMonkeyマクロを組んでみましたが、 >3-5のどのマクロでもうまく置換できませんでした。 Windows2000SP4+VxEditor0.5.4の組み合わせです。 正規表現の場合まだ何か必要な記述があるのでしょうか?
26 名前:25 mailto:sage [2007/08/31(金) 01:01:21 ID:/zxtK6ns0] 自力で解決できました。分かってるひとには当然すぎる結果かもしれませんが、 折角なので書いときます。 1 2 3 4 5 12.30 15.25 ↑これを↓のようにしたくて、 1:00 2:00 3:00 4:00 5:00 12:30 15:25 >3 のマクロを使ったら、1・6・7行目しか置換できなかった。 原因は、正規表現のオプションにm(複数行対象)が入っていなかったことでした。 var e = new Editor; var text; text = e.SelText; text = text .replace(/^(\d+)$/mg,"$1:00") //←mが必要 .replace(/\./mg,":") //←mが必要 ; e.SelText = text;
27 名前:25 mailto:sage [2007/08/31(金) 01:03:42 ID:/zxtK6ns0] >4 のマクロを使ったら、一行目のパターンがよくないというアラートが出て停まってしまう。 どうやら『0から9までの数字のどれか』を表す『\d』が使えないらしいということに気が付き、 パターンを『[0-9]』に変更するが、今度はそこいらじゅう:だらけになった。 \をつけても.をエスケープできてないことに気が付き、\\にしてやっと6・7行目が置換できた。 しかしまだ1〜5行目が置換できない。 原因は、>3 同様に複数行を対象にする『reg.Multiline = true;』がなかったことでした。 e = new Editor; text = e.SelText; reg = new ActiveXObject("VBScript.RegExp"); reg.IgnoreCase = true; reg.Multiline = true; //←この行を追加 reg.Global = true; reg.Pattern = "^([0-9]+)$"; text = reg.Replace(text, "$1:00"); //\dは使えない? reg.Pattern = "\\."; text = reg.Replace(text, ":"); //エスケープは二重(\\)にする e.SelText = text;
28 名前:25 mailto:sage [2007/08/31(金) 01:05:20 ID:/zxtK6ns0] >5 のマクロを使ったら、なぜか選択文字列が全部消えたw もしや配列に正規表現は使えないのか? と思いましたが、そんなことはなく さっきまでの応用で、『\d→[0-9]』と『\→\\』と、mの追加で置換できるようになりました。 var words = new Array( "^([0-9]+)$","$1:00", "\\.",":" //←最後の行の末尾には , をつけない ); var e = new Editor; var text; text = e.SelText.toUTF8(); for (i = 0; i < words.length; i += 2) { text = text.replace(words(i).toUTF8(),"mg",words(i+1).toUTF8()); } e.SelText = text.fromUTF8toSJIS(); 連投スマソ。
29 名前:25 mailto:sage [2007/09/02(日) 00:18:43 ID:V5sCReKQ0] >27-28のマクロ、『[0-9]』にしなくてもエスケープを二重の『\\d』にすれば 『\d』も大丈夫でした。
30 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/03(月) 01:23:35 ID:52pm5aaU0] ネットで見つけたEmEditor用のマクロを加工してみました。 (Var n in ent)とかevalとか、それを使う仕組みは分からないけど とりあえず使うことはできるので。 var ent = new Object(); ent = { "^(\\d+)$" : "$1:00", "\\." : ":" //←最後の行の末尾には , をつけない }; var e = new Editor; var text; text = e.SelText; for (var n in ent){ text = text.replace(eval("/" + n +"/mg"),ent[n]); //←imgの有無は必要に応じて } e.SelText = text;
31 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/04(火) 00:30:11 ID:FftjOB0N0] 折角教えてもらったのに、うっかりしてました。 テキストは一旦UTF-8にしないと一部の2バイト文字が化けるんでした。 var ent = new Object(); ent = { "^(\\d+)$" : "$1:00", "表\\." : ":" //←最後の行の末尾には , をつけない }; var e = new Editor; var text; text = e.SelText.toUTF8(); for (var n in ent){ text = text.replace(eval("/" + n.toUTF8() +"/img"),ent[n].toUTF8()); } e.SelText = text.fromUTF8toSJIS();
32 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/06(木) 06:26:21 ID:Kiy8wFpH0] FindSetとReplaceSet引数についてのメモ テキストエディタをまったり語ろう ver.23 pc11.2ch.net/test/read.cgi/software/1180879766/165 >あとFindSet、ReplaceSetのoptionのビットってのは >0ビット目 -> 2の0乗=1 >1ビット目 -> 2の1乗=2 >5ビット目 -> 2の5乗=32 >って事なので、有効にしたいビットの値を足し上げてoptionの値とする。 >鬼車で大文字小文字区別して検索するなら1+32で33を渡す。 > >しかし FindSet->ReplaceSet->Replace でやろうとすると >replace命令が選択範囲や1個だけの置換に対応してないんで >すごく使いにくい。選択範囲内置換とかは離れ業使わないと無理。 >(別ウィンドウにコピーして全置換してから戻す、みたいな) > >選択範囲内置換機能かReplaceNextみたいなのを追加してほしいなあ。
33 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/07(金) 15:18:25 ID:+OSjwWA+0] VxEditor最新版、ついに公式サイトから発信。 ttp://dr-x.hp.infoseek.co.jp/ >2007/09/01 Ver 0.5.5 > > ・MS-IMEの「カーソル位置の前後の内容を参照して変換を行う」、ATOKの「カ > ーソル位置前後の文章を参照して変換する」に対応。 > ・URLやメールアドレスでマウス右クリックのときリンクをコピーなどのメニ > ューがでるように変更。 > ・検索や置換ダイアログの補助入力用ポップアップメニューを少し追加。 > ・VxGrepでテキスト抽出する拡張子を追加。(Office2007やOpenOfficeなど)
34 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/10(月) 12:32:29 ID:c493h9RW0] 正規表現1や2の検索で\n\nは検索できるんだが \n\n\nが検索できないのはなぜかわかりません…orz
35 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/10(月) 15:08:34 ID:QPmu7ICa0] >>34 DocフォルダのFAQに書いてあるよ。
36 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/10(月) 16:51:50 ID:c493h9RW0] >>35 サンクス。…この制限は正直きつい
37 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/12(水) 22:25:55 ID:MG2blBSn0] VxEditor用に英数字のみ半角にするマクロを書いてみました。 // 全角英数字を半角英数字に置換する var words = new Array( "0" , "0" , (略) "9" , "9" , "A" , "A" , (略) "Z" , "Z" , "a" , "a" , (略) "z" , "z" //←最後の行の末尾には , をつけない ); var e = new Editor; //エディタオブジェクトの作成 var reg = new ActiveXObject("VBScript.RegExp"); var text = e.SelText; //選択したテキストを取得 for (i = 0; i < words.length; i += 2) { reg.IgnoreCase = true; reg.Multiline = true; reg.Global = true; reg.Pattern = words(i); text = reg.Replace(text, words(i+1)); } e.SelText = text;
38 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/12(水) 22:29:32 ID:MG2blBSn0] >37を自分で書いといてアレですが、a-z・A-Z・0-9と分かりやすいグループになっているのに 一件一行づつ総当り戦というのはなんかいまひとつ芸がない感じがします。 JavaScriptのサンプルを公開しているサイトにもっとアタマの良さそうな書き方があったのですが、 これをVxEditorで使えるように書き直すことはできないでしょうか。 /* 全角英数字を半角英数字に置換する */ function z2h_word(src) { return src.replace(/([A-Za-z0-9_])/g, function ($0) { return String.fromCharCode($0.charCodeAt(0) - 65248); }); } /* 半角英数字を全角英数字に置換する */ function h2z_word(src) { return src.replace(/(\w)/g, function ($0) { return String.fromCharCode($0.charCodeAt(0) + 65248); }); } AOK's JavaScript Libraryより ttp://homepage3.nifty.com/aokura/jscript/z2h_word.html
39 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/13(木) 23:25:14 ID:Gcyn5Qag0] これ復活してたのか 地味に嬉しい
40 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/14(金) 10:24:29 ID:lNS7dkCK0] 大いに喜んだら良い
41 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/14(金) 14:58:01 ID:gCCfuW7u0] URLコピー対応してくれたのか。作者ここ見てるのかな?感謝してるだ。
42 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/14(金) 15:23:04 ID:HuNSF2VV0] 俺も感謝しれる
43 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/14(金) 17:20:26 ID:x1yM5I8I0] 画面のサイズの記憶は拡張子ごとにしかできない? 保存したファイルを開くとサイズは記憶されてるみたいだけど 本体を直接立ち上げるとどうしても毎回デフォルトの大きさになる メモ帳ですら記憶されるのに
44 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/15(土) 07:36:24 ID:hVxTYMtd0] >>43 メニューの表示の中を良く見てみな。
45 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/17(月) 02:00:21 ID:aHnU/URT0] readmeとかに書いてあるhttp…とかのURLをクリックするとブラウザで表示されるようにしたいんだけど、どうやるの?
46 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/17(月) 02:52:25 ID:scmzGpts0] ダブルクリック
47 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/17(月) 02:59:21 ID:aHnU/URT0] >>46 どうもありがとう
48 名前:名無しさん@お腹いっぱい。 [2007/09/18(火) 01:46:52 ID:i0Yf/yPQ0] ふたつ以上の連続した改行をひとつにするマクロ。 oedit辺りだと、複数の改行にまたがって検索置換できるので、 検索:\n\n+ 置換:\n でひとつに統合できるし、VxEditorでもマクロならふたつ以上の改行もヒット するようにできるのですが、なぜか直前の文字のくり返しである + が 有効にならないようなので、仕方なく数種類の『複数の改行をひとつにする』を 何回か繰り返して最終的にひとつにします。 \n\n\n\n\n ←これはOK \n\n+ ←これはNG 美しくないですが、一応使えます。 var e = new Editor; var text = e.SelText; for (i = 1 ; i <=5 ; i++ ){ //初期状態では5回くりかえす text = text .replace(/\n\n\n\n/mg,"\n") //4つ連続する改行をひとつにする .replace(/\n\n\n/mg,"\n") //3つ連続する改行をひとつにする .replace(/\n\n/mg,"\n") //2つ連続する改行をひとつにする ; } e.SelText = text;
49 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/18(火) 11:49:38 ID:T0uY98MT0] dmonkeyの正規表現は微妙なところあるね。 ↓dm.exe用テスト var test = "1\n2\n\n3\n\n\n4\n\n\n\n5\n\n\n\n\n---\n"; print(test); print(test.replace(/(\n)+/mg,"\n")); \nを()で括ってやると希望通りの結果になる。 ()がないと1つずつ置換するらしい。 マクロは↓でおk var e = new Editor; e.SelText = e.SelText.replace(/(\n)+/mg,"\n");
50 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/20(木) 02:10:21 ID:fD/8h8GH0] <Thanks> 神は居た。 \nだけじゃなく、繰り返しの直前の文字が2バイト文字もダメかも? 『用件を聞こう...』 『用件を聞こう・・・』 『用件を聞こう、、、』 『用件を聞こう‥‥』 『用件を聞こう・・・』 『用件を聞こう...』 ↑という語尾の点点を、三点リーダー2つの『用件を聞こう……』に統一したくて、 var e = new Editor; //e.SelText = e.SelText.replace(/(・・+|、、+|‥‥+|……+|\.\.+)/g,"……") ; e.SelText = e.SelText.replace(/(・・|、、|‥‥|………|\.\.|..)+/g,"……") ; 両方のパターンで実行してみたけど、1バイトのピリオド以外は繰り返しを認識くれませんでした。
51 名前:50 mailto:sage [2007/09/20(木) 02:11:33 ID:fD/8h8GH0] で、WSHを使うこっちのマクロだとちゃんと置換されるので、 ダメ文字も含めて2バイト文字を扱うときはWSHのがいいのかしら。 var e = new Editor; reg = new ActiveXObject("VBScript.RegExp"); reg.IgnoreCase = true; reg.Multiline = true; reg.Global = true; reg.Pattern = "・・+|、、+|‥‥+|……+|\\.\\.+|..+"; e.SelText = reg.Replace(e.SelText, "……"); フツーに日本語を扱いたいだけなのに……。
52 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/20(木) 06:47:54 ID:CPArfUeq0] 先生ー、avast!君が唐突にキレはじめました イベントの種類: 警告 イベント ソース: avast! 説明: Sign of "Win32:Agent-LOL [Trj]" has been found in "C:\Program Files\VxEditor\VxGrep.exe" file.
53 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/20(木) 11:31:01 ID:gtJLsu9J0] ぁウチのもだ。 Windows2000SP4+VxEditor0.5.5の組み合わせ。 VxGrep.exeだけ0.5.4をにしてみても、解凍した途端にアラートが出ます。 てことは最近バージョンアップしたavast!4.7側が問題を?
54 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/20(木) 13:30:37 ID:iYfnC5sG0] avastに文句行ってくる!!とりあえずパスポート準備するよ!!
55 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/23(日) 04:11:01 ID:mt6BxOEt0] Vx復活してんじゃん。最強。 これなしでは生きていけない。。。
56 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/23(日) 13:19:48 ID:gR+i2lnj0] VxEって差分比較出来ないのですか?
57 名前:56 mailto:sage [2007/09/23(日) 13:41:29 ID:gR+i2lnj0] >>56 ググったカス WinMerge(winmerge.org/ ) Rekisa(hp.vector.co.jp/authors/VA017396/ ) 皆さんどちらを使ってますか?
58 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/24(月) 05:17:44 ID:BUCdwMdL0] >>57 WinMergeだな。
59 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/24(月) 13:42:56 ID:RGhsE2yq0] 俺もWinMerge
60 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/25(火) 23:28:18 ID:CA4qXejj0] とりあえずavast!は正気に返った、と。
61 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/26(水) 12:05:40 ID:hnyyG42G0] ttp://vista.undo.jp/img/vi9077592267.jpg ?とか?が表示できないのってどうにかならないかな?
62 名前:名無しさん@お腹いっぱい。 [2007/09/26(水) 12:44:51 ID:uvUbXbnA0] >>61 それ、使ってるフォントは同じ?
63 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/26(水) 13:54:25 ID:5wDpAuti0] 急に消えてしまって突然復活したのはなぜ?
64 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/26(水) 16:19:02 ID:wGU+31yl0] 就職→開発途絶える→辞職→開発再開
65 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/26(水) 16:45:26 ID:5wDpAuti0] そういうことですか なるほど
66 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/26(水) 16:50:47 ID:wGU+31yl0] ウソダモンネーヾ(*´∀`)人(´∀`*)ノ ウッソウソー
67 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/26(水) 22:23:56 ID:v9BF9t4z0] >61おとっつぁん、それは言わない約束でしょ。 シフトJISにない文字は表示もできないし、プロポーショナルフォントも使えないの。 そういうのはEmEditorとか秀丸とかメモ帳を使ってね。
68 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/26(水) 23:50:55 ID:zYGdRj1l0] >>57 どっちも桁単位で差分比較できるソフトだが、 かくいう俺もRekisaは数10MBファイルを開くのが遅かったり 開けなかったりでなじめなかった
69 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/28(金) 21:43:53 ID:qvLKSQRR0] VXeditorでは新規作成したときの文字コードをシフトJIS以外に指定出来ないのですか?
70 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/30(日) 02:36:51 ID:08mmnw460] VxEditorは直前に開いていたファイルと同じ文字コードで新規作成されるみたいですね。 使用条件がよく分からないけど、たとえばショートカットに起動オプションをつけて、 文字コードをEUC決め打ちで起動すると、開かれたファイルは当然EUCだし、 そこから新規作成を実行するとやはりEUCで作成されるけど、そういうのでoK?
71 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/30(日) 09:11:09 ID:hm8r0z7A0] >>70 ありがとうございました、その方法で問題ありませんでした。
72 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/02(火) 18:00:14 ID:KKYvUYtg0] 他の人の役に立つのかわからんけどマクロ投下。 編集中の文書内の[! と !] の間に書いたdmsを実行します。 //import mylib.*; //よく使う関数は外部dmsに書き溜めておく var e = new Editor; var w = new Window; var doc = e.text.toUTF8(); //本文取得 var sel = e.SelText.toUTF8(); //選択テキスト取得 var re = new RegExp(/\[!(.+)!\]/,"m"); if (!re.test(doc)) { return; } //try { //例外処理は省略 eval("(function(){" + re.$1 + "})();"); if (e.Selected) { e.SelText = sel.fromUTF8toSJIS(); } else { e.text = doc.fromUTF8toSJIS(); } //} catch(err) { } 実行後、選択範囲がある場合は選択範囲を変数selの内容で、 なければ文書全体をdoc変数の内容で置き換えます。 dms使わないとめんどいけど、ツールとして登録する程の ものでもないような処理をしたい時に使えるかも? 自分はdmsの実験用に使ってます。 例1.選択範囲の行頭に連番を振る (改行入れてもOK) [!el=sel.split("\n"); for(i in el){el[i]=(i<10?"0":"")+i+". "+el[i];} sel=el.join("\n");!] 例2.ウィンドウ複製 [!e2=new Editor; e2.WindowNo=w.Open(); e2.text=e.text;!]
73 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/03(水) 00:48:47 ID:CdVV7fhX0] 最近使い始めたばかりです。機能が多いのに挙動が速くて気に入りました。 決まったテキストファイルに次々覚え書きを残すために、 ショートカット等で起動 決まったテキストファイルを開く 改行を2回入れる (前回の覚え書きが行末で終わっているかもしれないのと、 できれば前回記述から1行あけたい) 現在の日時を挿入 改行して行頭にカーソルがくる といったことは可能でしょうか? これまで使っていたエディタではキーマクロを保存し、 エディタ起動後ショートカットキーで覚え書きメモを現在日時を入れた状態で起動させていました。 その一手間を省きたいのですが。
74 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/03(水) 01:18:52 ID:estex0B00] Vectorが0.54のままなんだけど?
75 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/03(水) 12:26:42 ID:dKEN4SU90] >>73 file = 'c:\foo\bar.txt'; //ファイル名 fmt = 'yyyy/mm/dd(aaaa) hh:nn:ss'; //日時の書式 if (Window.FileName.toLowerCase() != file.toLowerCase()) { return; } Date.format = fmt; Editor.Text += "\n\n"+Date.toString()+"\n"; ↑の最初2行をいじってマクロ(拡張子dmsのファイル)として保存して、 メニューのツール->ツール設定->追加から実行ファイルとして指定。 自動実行タブの実行条件で"ひとつのエディタフォームの起動時"にチェック。 これで1行目で指定したテキストを開いた時に日時が勝手に挿入されるので、 あとは指定したファイルをVxEditorで開くショートカットを作ればOK。 txtファイルがVxEditorに関連付けられてるならテキストファイルへの ショートカットを作成するだけ。 おまけで自動実行使わない場合のマクロ↓ file = ''c:\foo\bar.txt'; fmt = 'yyyy/mm/dd(aaaa) hh:nn:ss'; w = new Window; e = new Editor; if (w.FileName != "" || e.Modified) { w.WindowNo = w.Open(); e.WindowNo = w.WindowNo; } w.FileLoad(file,0); Date.format = fmt; e.Text += "\n\n"+Date.toString()+"\n";
76 名前:名無しさん@お腹いっぱい。 [2007/10/03(水) 16:20:41 ID:ZOtXfwxJ0] 任意の行(例えば、3行目と10行目と22行目)を抜き出す事は可能ですか?
77 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/03(水) 18:36:41 ID:dKEN4SU90] 抜き出してどうすりゃいいのか知らんけど、とりあえずalert var a = new Array(3,10,22); var el = Editor.Text.split("\n"); var s = ""; for (i in a) { s+=(a[i]<=Editor.LineCount)?el[a[i]-1]+"\n":""; } //最終行超えてたら空文字 alert(s);
78 名前:76 mailto:sage [2007/10/03(水) 18:43:20 ID:ZOtXfwxJ0] >>77 抜き出して、書き出したかったんです。 ありがとう。ありがとう。
79 名前:73 mailto:sage [2007/10/03(水) 21:45:30 ID:32wUlmg10] >>75 バッチリ望み通りの動作です! 本当にありがとうございます。
80 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/04(木) 19:23:03 ID:FRS7/3ll0] HTMLタグを含む定型文で選択範囲の文字列を挟み込むというマクロを作りたいのですが どのようにしたらいいでしょうか? 補完タンのページにあるコメント化を改造したらできるかなと思っていたのですが
81 名前:名無しさん@お腹いっぱい。 [2007/10/05(金) 19:50:42 ID:v5g163cV0] DMonkeyでソートって出来ましたっけ?
82 名前:名無しさん@お腹いっぱい。 [2007/10/06(土) 10:52:34 ID:zfSLfeN+0] 現在開いているファイルを関連付けに従って実行するにはどうしたら良いのでしょうか? vxのメニューバーにあるツールから 実行ファイルを cmd コマンドラインパラメータを "$FILEPATH"や start "$FILEPATH" に設定したんですがdos窓が開くだけなんです。 何か簡潔な実行方法は無いのでしょうか?
83 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/06(土) 19:49:32 ID:Ok+mqtgs0] >>82 パラメータを「/c start "" "$FILEPATH"」にすればOK 実行ファイルを「rundll32」、パラメータを 「url.dll,FileProtocolHandler "$FILEPATH"」にしてもOK 前者だと一瞬コマンドプロンプトが開いちゃうので 後者のがお勧めかな
84 名前:82 [2007/10/06(土) 20:10:19 ID:zLa1SukE0] >>83 すごく変則的で予想も付きませんでした。 本当にありがとうございます。
85 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/10(水) 19:19:24 ID:0WUememl0] 「設定」→「テキスト」→「テキストの種類:perl」の設定にした時って 予約語の色設定は反映されないのでしょうか? コメント読む限りですと「文字列とコメントタブは反映されない」とありますので 予約語は色設定が反映されると思ってたのですが、勘違いでしたでしょうか? マクロ使っても特定文字に色付けってのは難しいですよね…?
86 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/12(金) 23:09:58 ID:MwkUas200] >85 それはPerl用の予約語がカラッポだからじゃないですか? 試しに、dms用の設定をご覧下さい。 予約語のリストにたくさん書いてあると思うので、 それに習ってPerlのも埋めていただければ、いいのではないかと。 勿論200くらいあるPerlの予約語を一語ずつ入力しなくても、 一件一行形式のテキストファイルの拡張子を.kwdにすれば、 キーワードファイルとして一括読み込みできますから、 どっか別のエディタの設定ファイルからPerl用を拾い出して、 リストを加工すればいいんじゃないでしょうか。
87 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/13(土) 00:57:55 ID:5sesUYxB0] >80 正規表現による検索置換を使ったマクロを作ってみた。 たとえば文書中の単語(タンゴ)からリンク(tango.html)を張りたいとする。 でも文章を入力中は単語が主でリンクは従なので、こんな風に書きたい。 タンゴ tango.html 単語の境目を明示的に、かつ手間を少なくしたいので、タブで区切ってみる。 (Tab)タンゴ(Tab)(Tab)tango.html(Tab) これを選択して、以下のマクロを実行するとこうなる。 <a href=tango.html>タンゴ</a> この方法だと区切りを間違えなければ、文書中に複数のリンクを一度に作れる と思うのだが、どうか。
88 名前:87 mailto:sage [2007/10/13(土) 00:59:06 ID:5sesUYxB0] /* (Tab)テスト(Tab)(Tab)test.html(tab) と書いてあれば、 <a href="test.html">テスト</a> に置換するマクロ。 */ var words = new Array( '\t([^<].*?)\t\t([a-z\.].*?)\t','<a href="$2">$1</a>' //←最後の行の末尾には , をつけない ); var e = new Editor; var text = e.SelText; for (i = 0; i < words.length; i += 2) { text = text.replace(words(i),"gim",words(i+1)); //大文字小文字は区別しない } e.SelText = text;
89 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/13(土) 11:01:40 ID:Wj9Hq8n40] >>86 85とは別人だが、私も予約語の色が反映されない。 予約語は当然山盛り登録済みで、 テキストの種類を標準にすると予約語の色は反映される。 テキストの種類をperlにすると色反映されない。 当面の仕事はphpのみだから放置しているが…
90 名前:86 mailto:sage [2007/10/14(日) 01:38:48 ID:r+vHrxyP0] うーむ、言われてみてEmEditorのPerl用定義ファイルから抽出した予約語(200語くらいある) をkwd形式にして食わせてみたら、確かに以下の10語くらいしか強調されませんでした。 continue else for goto if return while delete do int new しかも別にPerlじゃなくても、ってのばっかだし。 バージョンは0.5.5で、Windows200SP4の組み合わせです。
91 名前:名無しさん@お腹いっぱい。 [2007/10/15(月) 23:19:47 ID:6USdbYXc0] 保守
92 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/20(土) 13:33:07 ID:8FO/Dp8k0] ほ
93 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/21(日) 02:26:41 ID:/dX/vswq0] ツールの設定でファイルのあるディレクトリをコマンドプロンプトで開きたいんですが cmd [$DIRPATH] としてみたんですがうまくいきません。 どうすればいいんでしょうか?
94 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/21(日) 02:39:47 ID:YfSUIkF20] このエディターが音声入力に対応しているかどうか試してみた。 これは音声入力で入力した文章だ。きちんと入力できている。最高だ。 これだったらメモ帳を使えと言われるかもしれないか。 タイプするよりは疲れない。
95 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/21(日) 10:22:51 ID:i308ss580] >>93 実行ファイルを「cmd」、パラメータに「/k cd /d "$DIRPATH"」でどうよ?
96 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/21(日) 11:44:25 ID:7vT34wWL0] >>94 指が相当弱いのか、声帯が恐ろしく強いのか そのどちらかだろ
97 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/21(日) 13:40:26 ID:/dX/vswq0] >>95 できました! ありがとうございます!
98 名前:名無しさん@お腹いっぱい。 [2007/10/25(木) 07:01:57 ID:5vDrOJXV0] 保守
99 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/28(日) 19:28:29 ID:jwu3+YPT0] viにおけるSHIFT-Jの動き(行結合)をシミュレートするマクロです。需要あるか? // TAB幅展開後のテキスト長を得る function getTabExpandedLength(text, tabwidth) { var result = 0; for (i = 0; i < text.length; i++) { c = text.charAt(i); if (c == "\t") { spaces = tabwidth - (result % tabwidth); result += spaces; } else { result += c.sizeOf(); } } return result; } Editor.BeginUpdate(); try { var curRow = Editor.Row; var curCol = Editor.Col; if (curRow < Editor.LineCount) { var curLineStr = Editor.GetLineString(curRow); var nextLineStr = Editor.GetLineString(curRow + 1).trimLeft(); Editor.SetLineString(curRow, curLineStr + nextLineStr); Editor.LineDelete(curRow + 1); Editor.Row = curRow; Editor.Col = getTabExpandedLength(curLineStr, Editor.TabSpaceCount); } } finally { Editor.EndUpdate(); }
100 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/29(月) 02:54:31 ID:7G21icJ+0] DMonkey 自体の質問してもいいでしょうか? ダメだったら誘導してもらえたら幸いです。 クラスに(メソッドではなく)プロパティを定義するには どう書けばいいのでしょう? スクリプトではメソッドしか定義できないのでしょうか? ↓だとメソッドになってしまうので…。 function f(){ ... } Class1.prototype.prop = f1;
101 名前:100 mailto:sage [2007/10/29(月) 05:26:15 ID:7G21icJ+0] すいません。例で書いたコード変ですね。 本当は既存の Editor クラスにプロパティを追加したいので、 function prop(){ ... } Editor.prototype.prop = prop; としてみてもメソッドになってしまう、という話です。